Problema de conexão db2 com java
Pergunta
Estou tendo problemas com o DB2. Acabei de instalar o DB2 como um db2admin e com uma senha. Quando tento me conectar ao banco de dados, é o sucesso completo e, ao executar qualquer consulta selecionada simples, ele me dê o seguinte erro:-
DB2 SQL ERRO: SQLCODE = -204, SQLSTATE = 42704, SQLERRMC = db2admin.login, driver = 3,57,82
Eu tenho um banco de dados chamado onp e uma tabela chamada 'login' na qual há uma tabela chamada 'login' com dois campos nome de usuário e senha.
Consulta que estou correndo
- Selecione * no login; me dá erro
DB2 SQL ERRO: SQLCODE = -204, SQLSTATE = 42704, SQLERRMC = db2admin.login, driver = 3,57,82
- Selecione * no System.login; Me dá erro:- (// sistema é o nome do esquema)
DB2 SQL ERRO: SQLCODE = -551, SQLSTATE = 42501, SQLERRMC = DB2ADMIN; SELECT; System.login, Driver = 3,57,82
Eu tentei todos os recursos na rede e exausto completamente. Por favor me ajude
Solução
Não sei muito sobre o DB2, mas olhando os códigos de erro ...
O primeiro erro é porque você não especificou um esquema, por isso não conseguiu encontrar a tabela de login.
SQLCode -204 Objeto não definido para DB2
Aparentemente, o DB2 exige que você especifique o nome do esquema ou parece no esquema com o mesmo nome do seu usuário de login.
Você deve usar SET SCHEMA
ou qualifique totalmente o nome da tabela.
O segundo erro é porque você não tem privilégios para executar essa seleção:
SQLCode -551, Erro: não tem o privilégio de executar a operação no objeto
Não sei por que o usuário do db2admin não seria capaz de selecionar nesta tabela ...
Recursos:
Lista de sqlcodes db2
Outras dicas
Ocorreu o código SQL 551 porque o usuário de conexão não tem privilégios para executar operações.
Vá para o Control Center - vá para o grupo de usuários e objeta e selecione DB2Admin (suponha que este usuário seja o uso para conectar -se ao DB2)
Verifique toda a caixa de seleção como a seguinte
Concessão de acesso ao esquema ao usuário
Conceder tabelas de acesso ao usuário
Você também pode resolver o problema como:
Basta dar a autoridade adequada ao usuário pelo qual você está conexão com o DB2.
Eu tive o mesmo problema e o resolvi adicionando esquema na minha entidade:
@Entity
@Table(name="MyTable", schema="MySchemaName")
public class MyClass implements Serializable {
...
}