sql – 为什么使用EXECUTE IMMEDIATE运行此查询会导致它失败?
发布时间:2021-03-03 20:29:22 所属栏目:MsSql教程 来源:网络整理
导读:我正在编写一个需要动态生成一些查询的PL / SQL过程,其中一个过程涉及使用作为参数的查询结果创建临时表. CREATE OR REPLACE PROCEDURE sqlout(query IN VARCHAR2)ISBEGINEXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE tmp_tab AS (' || query || ');';E
我正在编写一个需要动态生成一些查询的PL / SQL过程,其中一个过程涉及使用作为参数的查询结果创建临时表. CREATE OR REPLACE PROCEDURE sqlout(query IN VARCHAR2) IS BEGIN EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE tmp_tab AS (' || query || ');'; END; 它编译正确,但即使是非常简单的查询,例如: BEGIN sqlout('SELECT * FROM DUAL'); END; IT抛出ORA-00911:无效字符.如果我手动运行创建的查询,它将正确运行.此时我能够确定导致问题的原因. 解决方法试着失去“;”从您执行立即的字符串内部.EXECUTE IMMEDIATE 'CREATE GLOBAL TEMPORARY TABLE tmp_tab AS (' || query || ')'; (编辑:广安站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- sql-server-2012 – 如何卸载SQL Server Management Studio
- sql-server-2008 – 与SQL Server分开安装Team Foundation
- 微软称愿与欧盟和解 承认主导操作系统市场
- sql – MS Access 2010在查询中运行总计
- Ghost时出现错误代码5555h的解决方法(一)
- sql-update – 从另一个表更新多个列 – 需要Oracle格式
- Windows Server 2003 SP1将在今夏推出
- exchange-2003 – 腐败交换数据库 – 如何将数据从outlook恢
- 12.1寸高亮宽屏:BenQ Joybook 6000闪亮登场
- 数据库 – 是否可以使用主键的字符值?