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

Posted

技术标签:

【中文标题】“使用”和 || 之间的区别在 PL SQL 中【英文标题】:Difference between 'USING' and || in PL SQL 【发布时间】:2017-11-16 11:38:45 【问题描述】:

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

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

但是下面的代码

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

给出错误提示

ORA-00903: 无效的表名

ORA-06512:在第 2 行

    00000 - “无效的表名”

*原因: *行动:

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

【问题讨论】:

【参考方案1】:

正如 Oracle 文档所述:

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

【讨论】:

以上是关于“使用”和 || 之间的区别在 PL SQL 中的主要内容,如果未能解决你的问题,请参考以下文章

Oracle PL/SQL 中过程/函数和对象的区别

jquery中使元素显示和隐藏方法之间的区别

SQL 和 PL/SQL 的区别

在 PL SQL 中使用“执行”和目录执行查询语句有啥区别?

pl/sql里面命令窗口和sql窗口区别是啥?

Oracle PL/SQL 在原始选择和分层选择之间切换