【问题标题】:how to raise user defined exception in postgresql如何在 postgresql 中引发用户定义的异常
【发布时间】:2020-03-04 22:43:48
【问题描述】:
   EXCEPTION WHEN DUP_VAL_ON_INDEX THEN
          dup_prod_limt_info := 'An error ocurred trying to inset a record into FICS_CLM.T_CLM_CPARTY_PROD_LMT with CPARTY_PROD_LIMIT_TXN_ID <' || max_limit_txn_id || 
          '> CPARTY_ID <' || pro_lim_rec.CPARTY_ID || '> BU_LVL4_CODE <' || pro_lim_rec.BU_LVL4_CODE || '> PROD_CODE <' || pro_lim_rec.PROD_CODE || '>';
          RAISE dup_prod_limit;

【问题讨论】:

    标签: oracle postgresql postgresql-9.1 postgresql-9.3 postgresql-9.5


    【解决方案1】:

    你可以在EXCEPTION BLOCK中使用RAISE EXCEPTION子句

    示例:

    DECLARE
    mensaje text;
    mensaje_detalle text;
    sqlerror text;
    begin
    --do something;
    
    EXCEPTION
    WHEN syntax_error THEN
    RAISE EXCEPTION 'sintaxis error';
    --for unknown exception
    WHEN OTHERS THEN
    GET STACKED DIAGNOSTICS mensaje = message_text, mensaje_detalle =
    pg_exception_detail, sqlerror = returned_sqlstate;
    RAISE EXCEPTION 'other error: %, %, %', sqlerror, mensaje,mensaje_detalle;
    END;
    

    【讨论】:

    • 如果重复出现他正在引发异常,之后它将从循环中出来 RAISE dup_prod_limit; (循环等。) dup_prod_limit THEN Perr_msg 时例外:= dup_prod_limt_info; WHEN OTHERS THEN Perr_msg := '执行过程 P_CLM_CLOSE_PRODUCT_LIMITS ';这个postgree怎么写??
    • 在 PostgreSQL 中 EXCEPTION WHEN 处理的条件可以是错误代码 (postgresql.org/docs/10/errcodes-appendix.html) 中显示的任何条件。如果您的错误未在此处列出。您可以使用特殊条件名称OTHERS作为答案示例,或查看此答案stackoverflow.com/questions/7767413/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-17
    • 2011-08-26
    • 2021-07-30
    • 2012-01-29
    相关资源
    最近更新 更多