Índice
- Descripción en la base de datos Oracle
- Explicación del error ORA-06512:
- Motivos del error ORA-06512:
- Ejemplos de ORA-06512:
Descripción en base de datos Oracle
Esto es lo que dice la documentación de Oracle sobre este error
Referencia:documentación de Oracle
Puede encontrar esto siempre escribiendo a continuación en Unix
oerr ORA 06512
Explicación del error ORA-06512:
Error ORA-06512 significa el mensaje de seguimiento inverso a medida que la pila se desenrolla por excepciones no controladas en su código PLSQL. Este es un error general para todas las excepciones de PLSQL y se ve comúnmente.
ORA 6512 no indica el error real, sino el número de línea del error no manejado en el código PLSQL. ORA-6512 normalmente aparecerá en una pila de mensajes en la que el mensaje anterior indica el motivo del error, como en el siguiente ejemplo:
ORA-06502: PL/SQL: numeric or value error ORA-06512: at line 1112
En lo anterior, el error resaltado en amarillo es el error principal
Motivos del error ORA-06512:
Las opciones para resolver este error de Oracle son:
1) Solucione la condición que está causando el error no controlado.
2) Escriba un controlador de excepciones para este error no controlado.
3) Póngase en contacto con su DBA de Oracle para obtener ayuda.
Ejemplos de ORA-06512:
Veamos algunos ejemplos de cómo trabajar en él
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(5); begin site_name := 'techgoeasy.com'; end; / Procedure created. sql> Exec Testora_proc ERROR at line 1: ORA-06502: PL/SQL: numeric or value error: character string buffer too small ORA-06512: at line 5
En el ejemplo anterior, el procedimiento se compiló con éxito pero dio errores durante la ejecución
Entonces el error real es el error
ORA-06502: PL/SQL: numeric or value error: character string buffer too small
Podemos corregirlo fácilmente aumentando el tamaño de la variable
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(20); begin site_name := 'techgoeasy.com'; end; / Procedure created. SQL> Exec Testoraproc PL/SQL procedure successfully completed.
También podemos resolver esto usando un controlador de excepciones
CREATE OR REPLACE PROCEDURE Testora_proc AS Site_name varchar2(5); begin site_name := 'techgoeasy.com'; EXCEPTION WHEN OTHERS THEN site_name := 'tech'; end; / Procedure created.SQL>Exec Testoraproc; PL/SQL procedure successfully completed.
Otro ejemplo sería
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node; end; / Procedure created SQL> Exec Testora_proc; ORA-01422: exact fetch returns more than requested number of rows ORA-06512: at “NODE_NAME”, line 4 ORA-06512: at line 1
Aquí ORA-01422 es el error real. tenemos más de 1 filas en la tabla db_node y obtenemos múltiples valores para el nodo. Entonces, una solución podría ser restringir una fila
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node where rownum <2; end; / Procedure created SQL> Exec Testora_proc; PL/SQL procedure successfully completed.
Otro ejemplo sería
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node; end; / Procedure created SQL> Exec Testora_proc; ORA-01403: no data found ORA-06512: at “NODE_NAME”, line 4 ORA-06512: at line 1
Aquí ORA-01403 es el error real. no tenemos filas en la tabla de Oracle db_node y no obtenemos ningún error de datos encontrados. Por lo tanto, una solución podría ser poner el manejo de excepciones
CREATE OR REPLACE PROCEDURE Testora_proc AS node_name varchar2(5); begin select node into node_name from db_node where rownum <2; EXCEPTION WHEN NO_DATA_FOUND THEN node_name := 'tech'; end; / Procedure created SQL> Exec Testora_proc; PL/SQL procedure successfully completed.
Algunos ejemplos más pueden estar en SYS.UTL_FILE
SQL> declare F_LOG utl_file.file_type; begin F_LOG := utl_file.fopen('TESTDIR','k', 'w'); end; / 2 3 4 5 6 declare * ERROR at line 1: ORA-29283: invalid file operation ORA-06512: at "SYS.UTL_FILE", line 536 ORA-29283: invalid file operation ORA-06512: at line 4
Aquí el error principal es ORA-29283. Compruebe la solución haciendo clic en el enlace
Espero que les guste esta publicación sobre ORA-6512 Mensaje de error
Artículos relacionadosORA-00911
ORA-03113
ORA-00257
ORA-27154
ORA-29913
ORA-20001 en Recopilar estadísticas de esquema en 11g(FND_HISTOGRAM_COLS )