“使用”和 || 之间的区别在 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 中的主要内容,如果未能解决你的问题,请参考以下文章