2017-11-16 7 views
0

PL/SQLコードで基本的なSELECTクエリを実行するだけで済みます。次のコードは完全に正常に動作します:'USING'と||の違いPL内のSQL

BEGIN 
EXECUTE IMMEDIATE 'SELECT * FROM :1' USING 'TNAME'; 
END; 
/

が言ってエラーになります

BEGIN 
EXECUTE IMMEDIATE 'SELECT * FROM ' || 'TNAME'; 
END; 
/

しかし、次のコード

ORA-00903:無効なテーブル名

ORA-06512:行で2

  1. 00000 - "無効なテーブル名電子どのような方法で "USING」

*原因:
*アクション

私が使用して、テーブル名を渡すことはできませんか"? Oracleのドキュメント状態として

答えて

8

「あなただけがこのような 句で条件テストとして、SQL文で 変数を置き換えることができる場所にプレースホルダを使用することができますあなたのためのプレースホルダを使用することはできません。スキーマオブジェクトの名前 正しい方法については、「Passing Schema Object Names As Parameters.

関連する問題