我有一个pl \ sql脚本,我想将脚本中使用的表名设置为一个变量。所以,从我在网上找到的一些例子中,我写下了下面的代码。第一部分的工作原理,所以我认为我的一般语法是正确的,但第二部分,我试图使用一个变量为一个表名错误(“SQL错误:ORA-00903:无效的表名”)。如何在表格名称的oracle脚本中使用变量
任何人都知道我在做什么错...我没有做很多PL \ SQL,所以也许我只是错过了一些明显的东西。
--works
variable numOfrecords number;
exec :numOfrecords := 10;
select * from customers2008 where rownum < :numOfrecords;
--does not work
variable tableNm CHAR;
exec :tableNm := 'customers2008';
print tableNm;
select * from :tableNm;
仅供参考:根据您的示例,您并未真正使用PL/SQL。我认为你的意思是你有一个SQLPlus脚本。从技术上讲,你的exec命令正在调用PL/SQL,但总体来说,你在这里展示的是SQLPlus命令。 – 2009-07-24 19:57:36
嗯,从技术上说,他使用了两种 - 脚本中的变量命令声明了一个PL/SQL绑定变量。 – 2009-07-24 20:08:06