2017-03-08 2 views
0

Forループ内で変数を表示するにはどうすればよいですか?元PL/SQL SQLデベロッパーでforループの変数を表示する方法

set serveroutput on; 

BEGIN 
    DBMS_OUTPUT.put_line('Starting'); 

    FOR r IN (SELECT owner, table_name FROM all_tables WHERE owner in ('ABC','CDE')) 
    loop 
     DBMS_OUTPUT.put_line('owner'); 
     EXECUTE IMMEDIATE 'grant select on '||r.owner||'.'||r.table_name||' to XXXX'; 
    end loop; 

    DBMS_OUTPUT.put_line('Ending'); 
END; 

については

が、私は出力の下に取得していますが

ここで行われるすべての変更を印刷されていないループ内の1

PL/SQL procedure successfully completed. 

Starting 
Ending 

を印刷しますか?

+0

に行かない理由は、それがselect文が何であるか、どのような値を返さないことが考えられていますクエリ結果? – TheName

+0

#CuriousProgrammer引用符を削除して回答を修正してください。DBMS_OUTPUT.put_line(R.owner);しかし、何も表示されない場合は、select文が行を返さないことを意味します。クエリの結果は何ですか? – TheName

+0

DBMS_OUTPUT.put_line( 'R.owner'); DBMS_OUTPUT.put_line(R.owner); 両方とも動作しません 両方のオーナーに繰り返し実行されているかどうかを確認する必要があります – CuriousProgrammer

答えて

0

これに失敗した場合には、このSELECT owner, table_name FROM all_tables WHERE owner in ('ABC','CDE')は何も返さないことを意味し、そのループ文の

set serveroutput on; 
    BEGIN 
     DBMS_OUTPUT.put_line('Starting'); 
     FOR R IN (SELECT owner, table_name FROM all_tables WHERE owner in ('ABC','CDE')) 
     loop 
     DBMS_OUTPUT.put_line(r.owner); 
    EXECUTE IMMEDIATE 'grant select on '||R.owner||'.'||R.table_name||' to XXXX'; 
     end loop; 
     DBMS_OUTPUT.put_line('Ending'); 
    END; 
+0

TheNameが存在します。スタンドアロンのクエリを実行すると結果が取得されます – CuriousProgrammer

関連する問題