菜鸟求教简单异常处理

allright1199 allright1199 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
本人初学oracle 的小菜鸟,有个需求要将15位的身份证号码转为18位,于是上网搜索,用了百度文库里的第一个FUN_PID15TO18()。
实际执行过程中,弹出错误

错误指向
FOR i IN 1 .. 17 LOOP
v_check_number := to_number(substr(result, i, 1)) * v_factor(i) +
v_check_number;
END LOOP;
个人猜测是因为15位的身份证中存在非数字字符,导致to_number失败。

请教该如何处理该异常,假设我原15位的身份证为输入参数pid15,那么我希望实现如下逻辑:
1、如果pid15能成功转为18位身份证,则返回18位身份证
2、如果不能,则返回原值(pid15)
...全文
评论 4
收藏 已收藏
分享
返回顶部
allright1199
基础和管理 17,377 成员 95,111 内容