如何在查詢中動態地添加表名?查詢中的動態表名
假設我有一個查詢,如下所示:
Select a.amount
,b.sal
,a.name
,b.address
from alloc a
,part b
where a.id=b.id;
在上述查詢我想動態使用的表(part b
如果數據庫是內部的,p_part b
如果數據庫如果外部)。
我有一個函數返回它是哪個數據庫。假設功能getdatabase();
select decode(getdatabase(),'internal','part b','external','p_part b')
from dual;
如何使用這個功能在我的主查詢表中插入動態的名稱到查詢?
我不想通過附加字符串進行最終查詢,然後用該字符串打開遊標來使用原始方式實現此目的。
:謝謝dcp,你是指原生的sql或dbms_sql工具? – 2012-03-05 19:18:20
@ user1136858 - 您可以使用EXECUTE IMMEDIATE或dbms_sql。我在最新的編輯中包含了一個EXECUTE IMMEDIATE的例子。 – dcp 2012-03-05 19:21:50