Question: Qual é a causa do erro ORA-04063 “%s tem erros”? Como resolver isto?
Oerr utilitário retorna isto para o erro ORA.
ORA-04063 "%s has errors"
Attempt to execute a stored procedure or use a view that has errors. For stored procedures, the problem could be syntax errors or references to other, non-existent procedures. For views, the problem could be a reference in the view's defining query to a non-existent table. Can also be a table which has references to non-existent or inaccessible types.
Solução
Houve uma tentativa de aceder a uma visualização inválida ou a um procedimento.
A vista poderia ter sido criada com a opção FORCE. Uma operação como uma GRANT SELECT contra esta vista inválida retornará o erro ORA-04063.
No caso abaixo da tabela tab1 não existe. A visualização é criada uma vez que a opção FORCE é utilizada.
Consequentemente quando o GRANT SELECT é emitido contra esta visualização inválida o erro ORA-04063 é retornado.
SQL>CREATE OR REPLACE FORCE VIEW vst.myview
AS SELECT * FROM tab1;
Warning: View created with compilation errors.
SQL> GRANT SELECT ON vst.myview TO USER_A;
ORA-04063: view "VST.MYVIEW" has errors
Quando a visualização é criada numa tabela existente o GRANT SELECT não retorna a mensagem de erro ORA-04063.
SQL>CREATE OR REPLACE FORCE VIEW vst.myview
AS SELECT * FROM dba_tables;
View created.
SQL> GRANT SELECT ON vst.myview TO USER_A;
Grant succeeded.
Issue resolvido!
Dicas Relacionadas ao OraTips
– Aprenda sobre Parâmetros Depreciados do Banco de Dados no Oracle 12c – Ao atualizar para o Oracle 12c é bom estar familiarizado com estes parâmetros. Leia mais aqui.
– Proxy User Authentication with Connect Through in Oracle Database – O mecanismo de autenticação Proxy permite que um usuário faça login como seu próprio usuário, mas aterrisse em um esquema diferente sem saber a senha desse usuário.
Outros Artigos
– Configurando o Oracle 12c Active Data Guard Database No mundo Multitenant, o PDB Database é considerado um banco de dados independente, mas as tarefas operacionais realizadas no nível CDB afetam todos os bancos de dados PDB conectados a ele. A tarefa de configuração de um Data Guard, comutação ou falha são todas realizadas no nível CDB. Quando o Data Guard é inicialmente configurado, com o banco de dados CDB, todos os PDB’s também são replicados para o alvo. Leia mais aqui.
– Conectando Aplicações do Desktop ao seu Banco de Dados VirtualBox Se você está tentando conectar entre as Máquinas VirtualBox ou tentando configurar a rede para se comunicar do Desktop às máquinas VirtualBox, siga as instruções simples de uso aqui