Estoy tratando de ejecutar un procedimiento almacenado que tiene múltiples parámetros de entrada y salida. El procedimiento solo se puede ver en mi panel Conexiones navegando Otros usuarios | | Paquetes | |
Si hago clic con el botón derecho, los elementos del menú son "Ordenar miembros por ..." y "Crear prueba de unidad" (atenuados). La capacidad de "Ejecutar" el procedimiento no parece posible cuando el usuario accede a él.
He estado tratando de encontrar un ejemplo de cómo crear un bloque anónimo para poder ejecutar el procedimiento como un archivo SQL, pero no he encontrado nada que funcione.
¿Alguien sabe cómo puedo ejecutar este procedimiento desde SQL Developer? Estoy usando la versión 2.1.1.64.
¡Gracias por adelantado!
EDITAR 1:
El procedimiento al que quiero llamar tiene esta firma:
user.package.procedure(
p_1 IN NUMBER,
p_2 IN NUMBER,
p_3 OUT VARCHAR2,
p_4 OUT VARCHAR2,
p_5 OUT VARCHAR2,
p_6 OUT NUMBER)
Si escribo mi bloque anónimo así:
DECLARE
out1 VARCHAR2(100);
out2 VARCHAR2(100);
out3 VARCHAR2(100);
out4 NUMBER(100);
BEGIN
EXECUTE user.package.procedure (33,89, :out1, :out2, :out3, :out4);
END;
Me sale el error:
Bind Varialbe "out1" is NOT DECLCARED
anonymous block completed
Intenté inicializar las variables out *:
out1 VARCHAR2(100) := '';
pero obtienes el mismo error:
EDITAR 2:
Según la respuesta de Alex, intenté quitar los dos puntos de delante de los parámetros y obtuve esto:
Error starting at line 1 in command:
DECLARE
out1 VARCHAR2(100);
out2 VARCHAR2(100);
out3 VARCHAR2(100);
out4 NUMBER(100);
BEGIN
EXECUTE user.package.procedure (33,89, out1, out2, out3, out4);
END;
Error report:
ORA-06550: line 13, column 17:
PLS-00103: Encountered the symbol "USER" when expecting one of the following:
:= . ( @ % ; immediate
The symbol ":=" was substituted for "USER" to continue.
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action: