SQL0805N
O pacote nome-do-pacote não foi localizado.
Explicação:
A instrução não pode ser concluída porque o pacote necessário não foi encontrado no catálogo.
O package-name está na forma:
* 'pkgschema.pkgname 0Xcontoken', em que o token de consistência é dado em hexadecimal.
* 'pkgschema.pkgname.pkgversion', se a versão do pacote for a cadeia vazia, '.pkgversion' será omitido do nome.
* '%.pkgname' se CURRENT PACKAGE PATH estiver definido. O conjunto de nomes de esquemas no CURRENT PACKAGE PATH está subentendido pelo caractere porcentagem ('%').
As causas possíveis desta mensagem (SQLCODE) são:
* O pacote não foi ligado ou eliminado.
* Se tentar executar um utilitário do DB2 ou aplicação CLI, os utilitários do DB2 precisam refazer o bind ao banco de dados.
* '%.pkgname' se CURRENT PACKAGE PATH estiver definido, mas nenhum pacote com o nome 'pkgname' pôde ser localizado em nenhum dos esquemas no CURRENT PACKAGE PATH.
Note que, quando os ids de versões estão em uso para o package-schema.package-name dado, pode haver pacotes definidos com o mesmo esquema de pacote e nome de pacote, mas o pacote correto não foi encontrado já que os pacotes existentes não correspondem à versão solicitada ou o token de consistência. Um pacote deve corresponder a todas as três partes do package-name. Quando as várias versões estão sendo utilizadas, as causas adicionais para esta mensagem são:
* a versão do aplicativo que está sendo executado foi pré-compilada, compilada e estabelecido um link,mas não foi ligada ou foi ligada mas aquela versão do pacote foi subseqüentemente eliminada.
* o aplicativo foi pré-compilado e ligado, mas não compilado e/ou estabelecido um link para ele, então o aplicativo que está sendo executado não está atualizado.
* o pacote foi ligado a partir de um arquivo de ligação gerado por uma pré-compilação do arquivo de origem diferente da pré-compilação que produziu o arquivo de origem modificado o qual foi compilado e teve o link estabelecido no aplicativo executável.
* um novo aplicativo foi ligado com o mesmo nome (e versão) de um pacote existente, deste modo substituindo o pacote existente. Se o aplicativo associado com o pacote substituído estiver em execução, este erro pode acontecer.
Em todos esses casos, o token de consistência do pedido não corresponde ao token de consistência da versão existente, desse modo o pacote é considerado não encontrado.
A instrução não pode ser processada.
Resposta do Usuário:
Especifique o nome do pacote correto ou faça o bind do programa. Se a aplicação sendo executada não está fazendo o bind ao banco de dados, entre em contato com o administrador do banco de dados para fazer o bind necessário. Certifique-se de que o módulo do aplicativo ou do objeto que está sendo executado seja o código fonte modificado compilado e vinculado associado à pré-compilação e ligação que gerou o pacote.
Se CURRENT PACKAGE PATH estiver definido, assegure-se de que o esquema que inclui o pacote esteja especificado no CURRENT PACKAGE PATH.
As seguintes instruções SQL podem ser utilizadas para consultar o catálogo a fim de determinar se existem versões diferentes do pacote.
SELECT PKGSCHEMA, PKGNAME,
PKGVERSION, UNIQUE_ID
FROM SYSCAT.PACKAGES
WHERE PKGSCHEMA = ‘pkgschema’
e PKGNAME=‘pkgname’.
Note que a coluna UNIQUE_ID corresponde ao token de consistência.
Se os programas do utilitário do DB2 necessitam efetuar o bind novamente ao banco de dados, o administrador do banco de dados pode executar isso emitindo um dos seguintes comandos do CLP do subdiretório bnd da instância, enquanto conectado ao banco de dados:
* "DB2 bind @db2ubind.lst blocking all grant public" para os utilitários do DB2.
* "DB2 bind @db2cli.lst blocking all grant public" para CLI.
Usuários do sistema federado: certifique-se de que os pacotes necessários para o servidor federado efetuou a ligação nas fontes de dados aplicáveis. Consulte o Federated Systems Guide para obter informações adicionais sobre como ligar pacotes a origens de dados.
sqlcode : -805
sqlstate : 51002