oracle - 如何在 postgresql 中引发用户定义的异常
问题描述
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;
解决方案
您可以在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;
推荐阅读
- json - jq 将参数作为新字段的键传递
- r - r scatterpolar plot for aspect data plotly 顺时针轴
- javascript - JavaScript中计时器的问题,尤其是当标签不活动的情况下
- logstash - 有人可以在linux中为我提供一个用于auth.log的logstash过滤器吗?
- python - 如何根据索引扩展数据框以匹配其他数据框
- postgresql - Sequelize 聚合计数函数使用 where 子句返回错误值
- scala - 如何将地图转换为另一个?
- python - 如何从一个对象引用另一个对象的变量?
- android - 如何将超过 2 个 api 调用的结果与 Coroutines Flow 结合起来?
- sql - SQL 小数位前 1 位