<small id='aJSlE'></small><noframes id='aJSlE'>

      <legend id='aJSlE'><style id='aJSlE'><dir id='aJSlE'><q id='aJSlE'></q></dir></style></legend>
      <i id='aJSlE'><tr id='aJSlE'><dt id='aJSlE'><q id='aJSlE'><span id='aJSlE'><b id='aJSlE'><form id='aJSlE'><ins id='aJSlE'></ins><ul id='aJSlE'></ul><sub id='aJSlE'></sub></form><legend id='aJSlE'></legend><bdo id='aJSlE'><pre id='aJSlE'><center id='aJSlE'></center></pre></bdo></b><th id='aJSlE'></th></span></q></dt></tr></i><div id='aJSlE'><tfoot id='aJSlE'></tfoot><dl id='aJSlE'><fieldset id='aJSlE'></fieldset></dl></div>
      <tfoot id='aJSlE'></tfoot>

        • <bdo id='aJSlE'></bdo><ul id='aJSlE'></ul>
      1. 为什么使用 EXECUTE IMMEDIATE 运行此查询会导致它失败?

        时间:2023-11-02

                <tbody id='8Eag2'></tbody>

            1. <legend id='8Eag2'><style id='8Eag2'><dir id='8Eag2'><q id='8Eag2'></q></dir></style></legend>

              <tfoot id='8Eag2'></tfoot>
                <bdo id='8Eag2'></bdo><ul id='8Eag2'></ul>
              • <small id='8Eag2'></small><noframes id='8Eag2'>

                <i id='8Eag2'><tr id='8Eag2'><dt id='8Eag2'><q id='8Eag2'><span id='8Eag2'><b id='8Eag2'><form id='8Eag2'><ins id='8Eag2'></ins><ul id='8Eag2'></ul><sub id='8Eag2'></sub></form><legend id='8Eag2'></legend><bdo id='8Eag2'><pre id='8Eag2'><center id='8Eag2'></center></pre></bdo></b><th id='8Eag2'></th></span></q></dt></tr></i><div id='8Eag2'><tfoot id='8Eag2'></tfoot><dl id='8Eag2'><fieldset id='8Eag2'></fieldset></dl></div>
                  本文介绍了为什么使用 EXECUTE IMMEDIATE 运行此查询会导致它失败?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我正在编写一个需要动态生成一些查询的 PL/SQL 过程,其中一个涉及使用作为参数的查询的结果创建临时表.

                  I am writing a PL/SQL procedure that needs to to dynamically generate some queries, one of which involves creating a temporary table using results from a query taken as a parameter.

                  CREATE OR REPLACE PROCEDURE sqlout(query IN VARCHAR2)
                  IS
                  BEGIN
                  EXECUTE IMMEDIATE  'CREATE GLOBAL TEMPORARY TABLE tmp_tab AS (' || query || ');';
                  END;
                  

                  它编译正确,但即使是非常简单的查询,例如:

                  It compiles correctly, but even with very simple queries such as with:

                  BEGIN
                      sqlout('SELECT * FROM DUAL');
                  END;
                  

                  IT 抛出 ORA-00911:无效字符.如果我手动运行创建的查询,它会正确运行.在这一点上,我能够确定导致问题的原因.

                  IT throws ORA-00911: invalid character. If I run the created query manually it runs correctly. At this point I am able to determine what is causing the problem.

                  推荐答案

                  尽量去掉;"从您立即执行的字符串内部.

                  Try to lose the ";" from inside the string that you Execute Immediate.

                  EXECUTE IMMEDIATE  'CREATE GLOBAL TEMPORARY TABLE tmp_tab AS (' || query || ')';
                  

                  这篇关于为什么使用 EXECUTE IMMEDIATE 运行此查询会导致它失败?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  上一篇:使用 PL/SQL 过程在 oracle 10g 中转储表 下一篇:表函数和流水线函数的区别?

                  相关文章

                    <small id='eyW9N'></small><noframes id='eyW9N'>

                      <i id='eyW9N'><tr id='eyW9N'><dt id='eyW9N'><q id='eyW9N'><span id='eyW9N'><b id='eyW9N'><form id='eyW9N'><ins id='eyW9N'></ins><ul id='eyW9N'></ul><sub id='eyW9N'></sub></form><legend id='eyW9N'></legend><bdo id='eyW9N'><pre id='eyW9N'><center id='eyW9N'></center></pre></bdo></b><th id='eyW9N'></th></span></q></dt></tr></i><div id='eyW9N'><tfoot id='eyW9N'></tfoot><dl id='eyW9N'><fieldset id='eyW9N'></fieldset></dl></div>
                        <bdo id='eyW9N'></bdo><ul id='eyW9N'></ul>
                    1. <tfoot id='eyW9N'></tfoot>
                      <legend id='eyW9N'><style id='eyW9N'><dir id='eyW9N'><q id='eyW9N'></q></dir></style></legend>