我有一个PL/SQL脚本,想要将其中使用的表名设置为变量。因此,我按照网上的一些示例编写了下面的代码。第一部分是可行的,所以我认为我的语法是正确的,但是第二部分,在尝试使用表名变量时会出现错误("SQL Error: ORA-00903: invalid table name")。
有人知道我做错了什么吗?我不经常使用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;