sql – 为什么使用EXECUTE IMMEDIATE运行此查询会导致它失败?
发布时间:2021-03-02 20:15:57 所属栏目: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 – 在sql server上使用并行性有什么危
- 如何在Postgres sql函数中引用命名参数?
- sql-server – 增量更新后统计信息消失
- sql-server – 创建缓存(延迟假脱机)CTE结果的计
- sql – 复杂的字段“string – number – string
- 如何将Visual Foxpro数据库转换为SQL Server数据
- sql-server – 为什么子查询使用并行性而不是连接
- sql-server – 在SQL Server 2005上获得最少多列
- sql-server – 如何将SQL Server死锁报告中的密钥
- sql-server – 如何在SQL Server中编写foreach?
热点阅读

