sql >> Base de Datos >  >> RDS >> Oracle

¿Cómo imprimir SYS_REFCURSOR con la ventana PLSQLDeveloper?

Si por "Ventana SQL" quiere decir SQL*PLUS, entonces para imprimir (usando PRINT comando) el contenido de un cursor, debe declarar una variable de enlace fuera del bloque PL/SQL, asignar un valor a esa variable de enlace dentro del bloque PL/SQL ejecutando el bloque y luego imprimir el contenido usando PRINT comando:

SQL> variable  IO_CURSOR refcursor;

SQL> DECLARE
  2    SOME_VAR_1 VARCHAR2(20);
  3    SOME_VAR_2 VARCHAR2(20);
  4    SOME_VAR_3 DECIMAL;
  5    --IO_CURSOR SYS_REFCURSOR;
  6    BEGIN
  7      SOME_VAR_1 := 'test1';
  8      SOME_VAR_2 := 'test2';
  9      SOME_VAR_3 := 1;
  10     --IO_CURSOR := NULL;  -- no need to do that
  11     Get_Analysis_Data(p_in_symbol_type => SOME_VAR_1,
  12                       p_in_symbol => SOME_VAR_2, 
  13                       p_in_isr_id => SOME_VAR_3,
  14                       isr_main_view => :IO_CURSOR);
  15   END;
  16 /

  SQL> print io_cursor;

EDITAR :

Para ver el contenido de un cursor en PL/SQL Developer, como una de las opciones, simplemente puede hacer lo siguiente:

  1. Archivo\Nuevo\Ventana de prueba
  2. Copie/pegue su bloque PL/SQL anónimo allí. Antes de esto, elimine IO_CURSOR SYS_REFCURSOR; declaración de variables. No hay necesidad de eso. También cambie isr_main_view => IO_CURSOR a isr_main_view => :IO_CURSOR . Debe usar la variable de vinculación en este caso.
  3. En la variables window en la parte inferior de la test window especifique el nombre de la variable de su cursor de referencia cuyo contenido desea ver (IO_CURSOR sin punto y coma anterior) y seleccione tipo cursor .
  4. Ejecuta el bloque presionando el triángulo verde.
  5. Después de ejecutar el bloque PL/SQL, consulte la columna value de la variables window . Presione el botón con puntos suspensivos para ver el contenido del cursor de referencia IO_CURSOR .