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

时间:2017-11-16 11:38:45

标签: oracle plsql oracle-sqldeveloper oracle12c

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

BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM ' || 'TNAME';
END;
/

但是关注代码

BEGIN
EXECUTE IMMEDIATE 'SELECT * FROM :1' USING 'TNAME';
END;
/

提出错误说

ORA-00903:表名无效

ORA-06512:第2行

  1. 00000 - "表格名称无效"
  2. *原因:
    *操作:

    我是否可以使用" USING"以任何方式?

1 个答案:

答案 0 :(得分:8)

正如Oracle文档所述:

  

“您只能在可以替换的地方使用占位符   SQL语句中的变量,例如WHERE中的条件测试   条款。您不能将占位符用于架构对象的名称。   以正确的方式,请参阅“Passing Schema Object Names As Parameters.