我只需要在PL / SQL代码中运行一个基本的SELECT查询。以下代码完美无缺:
BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM ' || 'TNAME';
END;
/
但是关注代码
BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM :1' USING 'TNAME';
END;
/
提出错误说
ORA-00903:表名无效
ORA-06512:第2行
*原因:
*操作:
我是否可以使用" USING"以任何方式?
答案 0 :(得分:8)
正如Oracle文档所述:
“您只能在可以替换的地方使用占位符 SQL语句中的变量,例如WHERE中的条件测试 条款。您不能将占位符用于架构对象的名称。 以正确的方式,请参阅“Passing Schema Object Names As Parameters.”