Saltar al contenido

¿Ejecutar procedimiento almacenado en SQL Developer?

Solución:

Con tipos de parámetros simples (es decir, no cursores de referencia, etc.) puede hacer algo como esto:

SET serveroutput on;
DECLARE
    InParam1 number;
    InParam2 number;
    OutParam1 varchar2(100);
    OutParam2 varchar2(100);
    OutParam3 varchar2(100);
    OutParam4 number;
BEGIN
    /* Assign values to IN parameters */
    InParam1 := 33;
    InParam2 := 89;

    /* Call procedure within package, identifying schema if necessary */
    schema.package.procedure(InParam1, InParam2,
        OutParam1, OutParam2, OutParam3, OutParam4);

    /* Display OUT parameters */
    dbms_output.put_line('OutParam1: ' || OutParam1);
    dbms_output.put_line('OutParam2: ' || OutParam2);
    dbms_output.put_line('OutParam3: ' || OutParam3);
    dbms_output.put_line('OutParam4: ' || OutParam4);
END;
/


Editado para utilizar las especificaciones del OP, y con un enfoque alternativo para utilizar :var vincular variables:

var InParam1 number;
var InParam2 number;
var OutParam1 varchar2(100);
var OutParam2 varchar2(100);
var OutParam3 varchar2(100);
var OutParam4 number;

BEGIN
    /* Assign values to IN parameters */
    :InParam1 := 33;
    :InParam2 := 89;

    /* Call procedure within package, identifying schema if necessary */
    schema.package.procedure(:InParam1, :InParam2,
        :OutParam1, :OutParam2, :OutParam3, :OutParam4);
END;
/

-- Display OUT parameters
print :OutParam1;
print :OutParam2;
print :OutParam3;
print :OutParam4;

Ejecución fácil. Obtener los resultados puede ser difícil.

Eche un vistazo a esta pregunta que hice La mejor manera / herramienta de obtener los resultados de un procedimiento de paquete de Oracle

El resumen es así.

Suponiendo que tuviera un paquete llamado mypackage y un procedimiento llamado getQuestions. Devuelve un refcursor y toma el nombre de usuario de la cadena.

Todo lo que tiene que hacer es crear un nuevo archivo SQL (archivo nuevo). Establezca la conexión y pegue lo siguiente y ejecute.

var r refcursor;
exec mypackage.getquestions(:r, 'OMG Ponies');
print r;

Para aquellos que usan SqlDeveloper 3+, en caso de que se lo hayan perdido:

SqlDeveloper tiene la característica de ejecutar el proceso / función almacenada directamente, y la salida se muestra de una manera fácil de leer.

Simplemente haga clic derecho en el paquete / proceso almacenado / función almacenada, haga clic en Run y elige target para ser el proc / func que desea ejecutar, SqlDeveloper generará el fragmento de código para ejecutar (para que pueda poner sus parámetros de entrada). Una vez ejecutados, los parámetros de salida se muestran en la mitad inferior del cuadro de diálogo, e incluso tiene soporte incorporado para el cursor de referencia: el resultado del cursor se mostrará como una pestaña de salida separada.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *