<legend id='wr0r7'><style id='wr0r7'><dir id='wr0r7'><q id='wr0r7'></q></dir></style></legend>

    <tfoot id='wr0r7'></tfoot>

      1. <small id='wr0r7'></small><noframes id='wr0r7'>

        <i id='wr0r7'><tr id='wr0r7'><dt id='wr0r7'><q id='wr0r7'><span id='wr0r7'><b id='wr0r7'><form id='wr0r7'><ins id='wr0r7'></ins><ul id='wr0r7'></ul><sub id='wr0r7'></sub></form><legend id='wr0r7'></legend><bdo id='wr0r7'><pre id='wr0r7'><center id='wr0r7'></center></pre></bdo></b><th id='wr0r7'></th></span></q></dt></tr></i><div id='wr0r7'><tfoot id='wr0r7'></tfoot><dl id='wr0r7'><fieldset id='wr0r7'></fieldset></dl></div>
          <bdo id='wr0r7'></bdo><ul id='wr0r7'></ul>
      2. 如何在异常处理块中重新引发 pl/sql 异常?

        How to re-raise pl/sql exception in exception handling block?(如何在异常处理块中重新引发 pl/sql 异常?)

          <tbody id='9n20L'></tbody>
          <bdo id='9n20L'></bdo><ul id='9n20L'></ul>
            <tfoot id='9n20L'></tfoot>

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

                1. <legend id='9n20L'><style id='9n20L'><dir id='9n20L'><q id='9n20L'></q></dir></style></legend>
                2. <small id='9n20L'></small><noframes id='9n20L'>

                  本文介绍了如何在异常处理块中重新引发 pl/sql 异常?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着跟版网的小编来一起学习吧!

                  问题描述

                  我有一些应用程序使用以下程序:

                  I have the following procedure which is used by some applications:

                  procedure p1
                  is
                  begin
                    bla bla bla;  
                  end;
                  

                  但是没有异常处理块.所以应用程序就是根据这个特性编写的.

                  But there is no exception handling block. So applications were written according this feature.

                  现在我需要在 p1 中记录错误.但它不应该影响使用此过程的应用程序.

                  Now I need to log errors in p1. But it shouldn't affect applications that use this procedure.

                  像这样:

                  procedure p1
                  is
                  begin
                    bla bla bla;
                  
                    exception when others then
                      log_error(sqlcode, sqlerrm);
                      raise_new_exception (sqlcode, sqlerrm);
                  end;
                  

                  如果出现 raise_application_error,第一个参数应该在 [-20000, -20999] 范围内.因此,如果引发异常 no_data_found,则不会引发此错误.

                  In case of raise_application_error first parameter should be in range [-20000, -20999]. So if there raises exception no_data_found, it cannot raise this error.

                  exception_init 的情况下,第二个参数不应是可变的.它必须是数字文字.

                  In case of exception_init, second parameter should not be variable. It must be numeric literal.

                  PS:作为临时解决方案,我使用立即执行

                  PS: As temporary solution, I'm using execute immediate

                  推荐答案

                  如果你的错误依旧,改成

                  If your error stays the same, change to

                  ...
                  exception when others then
                    log_error(sqlcode, sqlerrm);
                    raise;
                  end;
                  /
                  

                  这在文档中进行了解释.

                  这篇关于如何在异常处理块中重新引发 pl/sql 异常?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持跟版网!

                  本站部分内容来源互联网,如果有图片或者内容侵犯了您的权益,请联系我们,我们会在确认后第一时间进行删除!

                  相关文档推荐

                  How to call Oracle function or stored procedure using spring persistence framework?(如何使用 Spring 持久化框架调用 Oracle 函数或存储过程?)
                  What can cause intermittent ORA-12519 (TNS: no appropriate handler found) errors(什么会导致间歇性 ORA-12519(TNS:找不到合适的处理程序)错误)
                  SQL to return the number of working days between 2 passed in dates(SQL 返回两个传入日期之间的工作日数)
                  Oracle Date Subtraction(Oracle 日期减法)
                  Is using quot;select *quot; for a cursor in PL/SQL considered bad programming?(正在使用“选择 *PL/SQL 中的游标被认为是糟糕的编程?)
                  Using sql/plsql, how do you find out which character set a text uses?(使用 sql/plsql,你如何找出文本使用的字符集?)

                  1. <tfoot id='6QC5T'></tfoot>
                      <tbody id='6QC5T'></tbody>
                  2. <small id='6QC5T'></small><noframes id='6QC5T'>

                  3. <legend id='6QC5T'><style id='6QC5T'><dir id='6QC5T'><q id='6QC5T'></q></dir></style></legend>
                        <bdo id='6QC5T'></bdo><ul id='6QC5T'></ul>

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