oracle 捕找多行异常,异常如何捕获,如果有多个异常怎么做

CREATE OR REPLACE FUNCTION FUNC_EXECUTE(realityTab VARCHAR2,realityTabId VARCHAR2)

RETURN VARCHAR2

IS

indexTabConut NUMBER;

idValue VARCHAR2(100);

v_sql  VARCHAR2(200);

null_unit_exp exception;

v_result number ;

pragma exception_init(null_unit_exp,-20010);

BEGIN

DECLARE

realityText NUMBER;

sqls VARCHAR2(200);

BEGIN

sqls:='SELECT COUNT(TABLE_NAME) FROM USER_TAB_COLUMNS WHERE TABLE_NAME';

v_sql:=sqls|| '='''||realityTab||''' AND COLUMN_NAME='''||realityTabId||'''';

EXECUTE IMMEDIATE v_sql INTO realityText;

IF  realityText > 0 THEN

v_sql:='SELECT COUNT(PT_INNER_CODE) FROM INNER_CODE_SUB  where PT_NAME='''||realityTab||'''';

EXECUTE IMMEDIATE v_sql INTO indexTabConut;

IF indexTabConut > 0 OR indexTabConut = NULL THEN

v_sql:='SELECT MIN(PT_INNER_CODE)  FROM INNER_CODE_SUB ';

EXECUTE IMMEDIATE v_sql INTO idValue;

ELSE

idValue:=GETCODE(realityTab,realityTabId);

v_sql:='INSERT INTO INNER_CODE_SUB VALUES('''||realityTab||''','''||idValue||''')';

EXECUTE IMMEDIATE v_sql;--这里要加个异常,如何捕获?如果有多个异常的话,怎么做,需要自定义异常,该怎么加多个自定义异常捕获?

END IF;

ELSE

raise null_unit_exp;

END IF;

END;

RETURN idValue;

EXCEPTION

WHEN OTHERS  THEN

v_sql:=SUBSTR(SQLERRM, 1, 200);

raise_application_error(-20010,'表名或列明不存在');

ROLLBACK;

END;

分享至:

90ed4b13fe016cebd9fe3df2ae3a899b.gif

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值