Oracle SQL:用于代替表名的变量
发布时间:2020-12-12 13:49:32 所属栏目:百科 来源:网络整理
导读:我正在将MSSQL脚本转换为Oracle,我无法弄清楚使用变量代替表名或列的语法. 这是一个简单的例子,我一直在尝试在Oracle SQL Developer中工作,所以我可以更好地理解语法: set serveroutput on format wrapped;declare VR_TABLE VARCHAR2(256); VR_UPDATE VARCH
我正在将MSSQL脚本转换为Oracle,我无法弄清楚使用变量代替表名或列的语法.
这是一个简单的例子,我一直在尝试在Oracle SQL Developer中工作,所以我可以更好地理解语法: set serveroutput on format wrapped; declare VR_TABLE VARCHAR2(256); VR_UPDATE VARCHAR2(256); begin VR_TABLE :='SYSTEM_STATUS'; EXECUTE IMMEDIATE 'select UPDATE_VERSION INTO VR_UPDATE from ' || VR_TABLE || 'where rownum < 2 ;' end; 其中VR_TABLE是变量表名,它将在循环的每次迭代中被更改. > INTO需要成为EXECUTE IMMEDIATE的一部分,而不是动态SQL语句的一部分. >动态SQL语句不应具有尾随分号 > EXECUTE IMMEDIATE语句应以分号结尾 将这些放在一起,这样的事情应该有效 declare VR_TABLE VARCHAR2(256); VR_UPDATE VARCHAR2(256); begin VR_TABLE :='SYSTEM_STATUS'; EXECUTE IMMEDIATE 'select UPDATE_VERSION from ' || VR_TABLE || ' where rownum < 2' INTO VR_UPDATE; end; 当然,由于您没有对VR_UPDATE执行任何操作,因此执行此匿名块时不会显示任何内容. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |