3

以下のクエリでは、PL/SQL の「SQL ウィンドウ」で IO_CURSOR 値を取得する方法を示しています。

DECLARE
  SOME_VAR_1 VARCHAR2(20);
  SOME_VAR_2 VARCHAR2(20);
  SOME_VAR_3 DECIMAL;
  IO_CURSOR SYS_REFCURSOR;
BEGIN
  SOME_VAR_1 := 'test1';
  SOME_VAR_2 := 'test2';
  SOME_VAR_3 := 1;
  IO_CURSOR := NULL;
  Get_Analysis_Data(p_in_symbol_type => SOME_VAR_1,
                    p_in_symbol => SOME_VAR_2, 
                    p_in_isr_id => SOME_VAR_3,
                    isr_main_view => IO_CURSOR);
  PRINT IO_CURSOR
END;

ここに画像の説明を入力

4

2 に答える 2

4

「SQL Window」が SQL*PLUS を意味する場合、(PRINTコマンドを使用して) カーソルの内容を出力するには、PL/SQL ブロックの外側でバインド変数を宣言し、PL/SQL ブロックの内側でそのバインド変数に値を割り当てる必要があります。ブロックを実行して SQL ブロックし、PRINTコマンドを使用して内容を出力します。

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;

編集

オプションの 1 つとして、PL/SQL Developer でカーソルの内容を表示するには、次のようにします。

  1. ファイル\新規作成\テスト ウィンドウ
  2. そこに匿名のPL/SQLブロックをコピーして貼り付けます。IO_CURSOR SYS_REFCURSOR;この前に、変数宣言を削除してください。その必要はありません。isr_main_view => IO_CURSOR にも変更isr_main_view => :IO_CURSOR。この場合、バインド変数を使用する必要があります。
  3. ref カーソルの指定変数名の下部に、表示する内容 (前のセミコロンvariables windowなし) を入力し、type を選択します。test windowIO_CURSORcursor
  4. 緑色の三角形を押してブロックを実行します。
  5. PL/SQLブロックが実行されたら、の列valueを参照してくださいvariables window。省略記号が付いたボタンを押すと、参照カーソルの内容が表示されますIO_CURSOR
于 2013-10-01T08:28:55.513 に答える