2017-05-09 12 views
0

基本的なPL/SQL Forループを作成しようとしましたが、エラーが発生し続けます。私の文は次のとおりです。DBMS_OUTPUT.PUT_LINEエラーを返す

begin 

    for tab_x in 
    (select unique table_name from all_tables 
    where owner like 'MSGCENTER_DBO%' 
     and table_name like 'MSG_DETAIL%') 
    loop 
    DBMS_OUTPUT.PUT_LINE(tab_x); 
    end loop; 

end; 
/

エラーメッセージが

PLS-00306: wrong number or types of arguments in call to 'PUT_LINE' 
ORA-06550: line 6, column 7: 
PL/SQL: Statement ignored 

である私はおそらく非常に明白な何かをしないのですが、この作業を取得することができていません。私は助けていただきありがとうございます!

+1

'tab_x'はレコードデータ型であり、' put_line() 'はレコードを受け付けません。 'varchar2'データ型の変数は、暗黙的または明示的に1つの型に変換する必要があります。ドット表記を使って 'table_name'を' put_line() '関数に渡す必要があります。 'put_line(tab_x.table_name)' –

答えて

3

代わりにtab_x.table_nameにアクセスします。

begin 

    for tab_x in 
    (select unique table_name from all_tables 
    where owner like 'MSGCENTER_DBO%' 
     and table_name like 'MSG_DETAIL%') 
    loop 
     DBMS_OUTPUT.PUT_LINE(tab_x.table_name); 
    end loop; 

end; 
/
関連する問題