如何在oracle中将存储过程的动态sql查询更改为静态sql查询

时间:2012-05-15 04:52:44

标签: oracle plsqldeveloper

EXECUTE IMMEDIATE
  'Create Table '||vCUPRSBaseTableName
  ||' As Select * From '||vCUPRSTableName
  ||' where C_DESTINATION_ENTITY='''||l_bc_a(i)
  ||''' and LATEST=1'

2 个答案:

答案 0 :(得分:1)

您不能拥有绑定到变量的表名的静态sql。唯一的方法是使用动态sql

答案 1 :(得分:0)

无法在存储过程中执行DDL。结合您希望灵活地命名目标和源表这一事实,动态SQL是您唯一的选择。

但是,正如David A所观察到的那样,以这种方式创建表实际上非常罕见。如果您要解释您的用例,我们应该能够提出更好的方法。如果我是一个博彩人,我会把钱放在临时桌上作为你真正想要的解决方案。 Find out more