sql – 为什么行使EXECUTE IMMEDIATE运行此查询会导致它失败?
发布时间:2021-03-02 13:36:10 所属栏目:编程 来源:网络整理
导读:我正在编写一个必要动态天生一些查询的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 || ')'; (编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
站长推荐
热点阅读