Oracle/PLSQL: mensaje de error ORA-06550

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.