Los datos expuestos en este blog, son solo de índole informativo. Por favor realiza siempre una copia de seguridad antes de realizar cualquier cambio en tu proyecto.
Oracle/PLSQL: mensaje de error ORA-06550
Aprenda por qué y cómo resolver los mensajes de error ORA-06550 en Oracle.
describir
Cuando encuentra un error ORA-06550, aparece el siguiente mensaje de error:
- ORA-06550: número de línea, número de columna: str
razón
Intentó ejecutar un bloque no válido de código PLSQL (como un procedimiento almacenado o una función), pero ocurrió un error de compilación.
resolver
Las opciones para resolver este error de Oracle incluyen:
Opción 1
Consulte los números de línea y columna (en el mensaje de error) para encontrar errores de compilación y corregirlos. Luego intente recompilar su código.
Veamos un ejemplo de cómo resolver un error ORA-06550. Por ejemplo, si creó un procedimiento llamado TestProc de la siguiente manera:
SQL> CREATE OR REPLACE PROCEDURE TestProc 2 AS 3 vnum number; 4 BEGIN 5 vnum := vAnotherNum; 6 END; 7 / Warning: Procedure created with compilation errors.
Hubo un error de compilación al crear este procedimiento. Entonces, si intentamos hacer este proceso, obtendremos un error ORA-06550 como este:
SQL> execute TestProc(); BEGIN TestProc(); END; * ERROR at line 1: ORA-06550: line 1, column 7: PLS-00905: object EXAMPLE.TESTPROC is invalid ORA-06550: line 1, column 7: PL/SQL: Statement ignored
Puede ver los errores ejecutando el comando SHOW ERROR de la siguiente manera:
SQL> show error procedure TestProc; Errors for PROCEDURE TESTPROC: LINE/COL ERROR -------- ----------------------------------------------------------------- 5/1 PL/SQL: Statement ignored 5/9 PLS-00201: identifier 'VANOTHERNUM' must be declared
Como puede ver, el error se produce por no declarar una variable llamada VANOTHERNUM. Para corregir este error, podemos modificar nuestro procedimiento TestProc para declarar la variable de la siguiente manera:
SQL> CREATE OR REPLACE PROCEDURE TestProc 2 AS 3 vnum number; 4 vAnotherNumber number; 5 BEGIN 6 vAnotherNum := 999; 7 vnum := vAnotherNum; 8 END; 9 / Procedure created.
Ahora bien, cuando ejecutamos el programa TestProc, el error ORA-06550 ha sido resuelto.
SQL> execute TestProc(); PL/SQL procedure successfully completed.