'USING'和||之间的区别 在PL SQL中

Vis*_*ath 0 oracle plsql oracle-sqldeveloper oracle12c

我只需要在PL/SQL代码中运行一个基本的SELECT查询.以下代码完美无缺:

BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM ' || 'TNAME';
END;
/
Run Code Online (Sandbox Code Playgroud)

但是遵循代码

BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM :1' USING 'TNAME';
END;
/
Run Code Online (Sandbox Code Playgroud)

提出错误说

ORA-00903:表名无效

ORA-06512:第2行

  1. 00000 - "表名无效"

*原因:
*行动:

我不能以任何方式使用"USING"传递表名吗?

Non*_*ika 8

正如Oracle文档所述:

"您只能在可以在SQL语句中替换变量的位置使用占位符,例如WHERE子句中的条件测试.您不能使用占位符作为模式对象的名称.正确的方法,请参阅"将模式对象名称作为参数传递."