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

Articles

Deixe uma resposta

O seu endereço de email não será publicado.