Oracle
 sql >> Base de Dados >  >> RDS >> Oracle

Como imprimir SYS_REFCURSOR com a janela PLSQLDeveloper?


Se por "SQL Window" você quer dizer SQL*PLUS, então para imprimir (usando PRINT comando) o conteúdo de um cursor, você precisa declarar uma variável de ligação fora do bloco PL/SQL, atribuir um valor a essa variável de ligação dentro do bloco PL/SQL executando o bloco e imprimir o conteúdo 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 o conteúdo de um cursor no PL/SQL Developer, como uma das opções, basta fazer o seguinte:
  1. Arquivo\Novo\Janela de teste
  2. Copie/cole seu bloco PL/SQL anônimo lá. Antes disso, remova IO_CURSOR SYS_REFCURSOR; declaração de variável. Não há necessidade disso. Altere também isr_main_view => IO_CURSOR para isr_main_view => :IO_CURSOR . Você precisa usar a variável de ligação neste caso.
  3. Na variables window na parte inferior da test window especifique o nome da variável do seu cursor de referência cujo conteúdo deseja ver (IO_CURSOR sem precedente ponto e vírgula ) e selecione o tipo cursor .
  4. Execute o bloco pressionando o triângulo verde.
  5. Após a execução do bloco PL/SQL, consulte a coluna value da variables window . Pressione o botão com reticências para ver o conteúdo do cursor ref IO_CURSOR .