Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como resolver ORA-06512 na linha num


Índice

Descrição no banco de dados Oracle


ORA-06512 no oracle é um dos erros comuns vistos em programas PLSQL no banco de dados Oracle

Aqui está o que a documentação da Oracle diz sobre esse erro

Referência:documentação do Oracle

Você pode encontrar isso sempre digitando abaixo no Unix

oerr ORA 06512

Explicação do erro ORA-06512:


Erro ORA-06512 significa que a mensagem de backtrace enquanto a pilha está sendo desenrolada por exceções não tratadas em seu código PLSQL. Este é um erro genérico para todas as exceções PLSQL e é comumente visto.

ORA 6512 não indica o erro real, mas o número da linha do erro não tratado no código PLSQL. O ORA-6512 normalmente aparecerá em uma pilha de mensagens na qual a mensagem anterior nomeia o motivo do erro, como no exemplo a seguir:
ORA-06502:PL/SQL:erro numérico ou de valor ORA-06512:na linha 1112

No exemplo acima, o erro destacado em amarelo é o erro principal

Motivos do erro ORA-06512:


As opções para resolver este erro do Oracle são:

1) Corrija a condição que está causando o erro não tratado.
2) Escreva um manipulador de exceção para esse erro não tratado.
3) Entre em contato com seu DBA Oracle para obter ajuda.

Exemplos de ORA-06512:


Vamos ver alguns exemplos de como trabalhar nele
CREATE OR REPLACE PROCEDURE Testora_procASSite_name varchar2(5);beginsite_name :='techgoeasy.com';end;/Procedure created.sql> Execute Testora_procERROR na linha 1:ORA-06502:PL/SQL:erro numérico ou de valor:caractere buffer de string muito pequenoORA-06512:na linha 5

No exemplo dado acima, o procedimento foi compilado com sucesso, mas deu erros durante a execução

Então o erro real é o erro
ORA-06502:PL/SQL:erro numérico ou de valor:buffer de string de caracteres muito pequeno

Podemos corrigi-lo facilmente aumentando o tamanho da variável
CREATE OR REPLACE PROCEDURE Testora_procASSite_name varchar2(20);beginsite_name :='techgoeasy.com';end;/Procedure created.SQL> Execute o procedimento TestoraprocPL/SQL concluído com sucesso.

Podemos resolver isso usando o manipulador de exceção também
CRIAR OU SUBSTITUIR PROCEDIMENTO Testora_procASSite_name varchar2(5);beginsite_name :='techgoeasy.com';EXCEPTIONWHEN OUTROS THENsite_name :='tech';end;/Procedure created.SQL>Executar Testoraproc;PL/SQL procedure concluído com sucesso. 
Outro exemplo seria
CREATE OR REPLACE PROCEDURE Testora_procASnode_name varchar2(5);beginselect node into node_name from db_node;end;/Procedure createdSQL> Exec Testora_proc;ORA-01422:a busca exata retorna mais do que o número de linhas solicitado ORA-06512:em “NODE_NAME”, linha 4ORA-06512:na linha 1

Aqui ORA-01422 é o erro real. temos mais de 1 linha na tabela db_node e obtemos vários valores para node.
CREATE OR REPLACE PROCEDURE Testora_procASnode_name varchar2(5);beginselect node into node_name from db_node where rownum <2;end;/Procedure createdSQL> Exec Testora_proc;PL/SQL procedure concluída com sucesso.

Outro exemplo seria
CREATE OR REPLACE PROCEDURE Testora_procASnode_name varchar2(5);beginselect node into node_name from db_node;end;/Procedure createdSQL> Exec Testora_proc;ORA-01403:nenhum dado encontrado ORA-06512:em “NODE_NAME”, linha 4ORA-06512:na linha 1

Aqui ORA-01403 é o erro real. não temos linhas na tabela oracle db_node e não estamos recebendo nenhum erro de dados encontrados.
CREATE OR REPLACE PROCEDURE Testora_procASnode_name varchar2(5);beginselect node em node_name de db_node where rownum <2;EXCEPTION WHEN NO_DATA_FOUND  THEN node_name :='tech'; fim; /Procedure createdSQL> Exec Testora_proc;procedimento PL/SQL concluído com sucesso.

Mais alguns exemplos podem estar em SYS.UTL_FILE
SQL> declareF_LOG utl_file.file_type;beginF_LOG :=utl_file.fopen('TESTDIR','k', 'w');end;/ 2 3 4 5 6declare*ERROR na linha 1:ORA-29283 :operação de arquivo inválida ORA-06512:em "SYS.UTL_FILE", linha 536ORA-29283:operação de arquivo inválidoORA-06512:na linha 4

Aqui o erro principal é ORA-29283. Confira a solução clicando no link

Espero que gostem desta postagem em ORA-6512 Mensagem de erro
Artigos relacionados
ORA-00911
ORA-03113
ORA-00257
ORA-27154
ORA-29913
ORA-20001 em Reunir estatísticas de esquema em 11g(FND_HISTOGRAM_COLS )