oracle - oracle如何在游标块中捕获sql查询中的错误
问题描述
如何在块异常中捕获 sql 查询中的错误?在下面的示例中(除以零 -从 dual 中选择 (5 / 0) 作为示例),不执行异常块。
FUNCTION getData(p_result out integer)
RETURN SYS_REFCURSOR
AS
my_cursor SYS_REFCURSOR;
BEGIN
OPEN my_cursor FOR select (5 / 0) as example from dual;
p_result := 1;
RETURN my_cursor;
exception
WHEN OTHERS THEN
p_result := 0;
END getData;
解决方案
-------Just User this function------
------------------------------------
FUNCTION getData(p_result out integer)
RETURN SYS_REFCURSOR
AS
my_cursor SYS_REFCURSOR;
BEGIN
OPEN my_cursor FOR select (5 / NULLIF(0,0)) as example from dual;
p_result := 1;
RETURN my_cursor;
exception
WHEN OTHERS THEN
p_result := 0;
END getData;
推荐阅读
- linux - Linux 内核:查找所有可通过系统调用访问的驱动程序
- flutter - 如何根据 ID 在 Sembast 中加载单个条目?
- python - virtualenvwrapper 错误:路径 python2(来自 --python=python2)不存在
- wpf - 在 WPF MVVM EF 应用程序中放置 Automapper 的位置
- arduino - 我如何使用arduino的模拟引脚计算脉冲
- javascript - 无法使用不受支持的 MIME 类型注册 Service Worker
- python - 将 abc 表示法转换为 wav 文件
- reactjs - 在一个 vscode 窗口中调试 React 组件库,同时符号链接到主机应用程序
- reactjs - 如何正确映射来自 api fetch react 的结果
- python - 如何使用 groupby 和聚合将 pyspark 数据框中的行与多列连接起来