我正在将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是变量表名称,该变量表名称将在循环的每次迭代中更改。有人可以指出我做错了什么,还是可以将我链接到一个对我来说有用的网站?我已经阅读了一些有关此的教程,但是到目前为止,我还没有碰到任何运气。
WHERE
INTO
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,因此在执行此匿名块时将不会显示任何内容。
VR_UPDATE