クエリにテーブル名を動的に配置するにはどうすればよいですか?クエリの動的テーブル名
は、以下に示すように、私は、クエリを持っていると仮定:上記のクエリで
Select a.amount
,b.sal
,a.name
,b.address
from alloc a
,part b
where a.id=b.id;
(データベース外部もしあればp_part b
、データベースが内部である場合part b
)Iが動的テーブルを使用します。
私はそれがどのデータベースであるかを返す関数を持っています。機能は、私は、クエリに動的にテーブル名を挿入するために私のメインのクエリでこの機能を使用するにはどうすればよいgetdatabase();
select decode(getdatabase(),'internal','part b','external','p_part b')
from dual;
であると仮定?
これは、最後のクエリを作成するために文字列を追加し、その文字列でカーソルを開くことによって、これをプリミティブな方法で実装したくありません。
:thanks dcp、ネイティブsqlまたはdbms_sqlユーティリティを参照していますか? –
@ user1136858 - EXECUTE IMMEDIATEまたはdbms_sqlを使用できます。最新の編集にEXECUTE IMMEDIATEの例が含まれています。 – dcp