处理ORACLE异常

2024-04-30

我需要处理ORA-01400 错误 http://www.techonthenet.com/oracle/errors/ora01400.php(无法使用异常句柄将 NULL 插入 ("SCHEMA"."TABLE_NAME"."COLUMN_NAME") )。

ORACLE预定义了一些异常,例如(ACCESS_INTO_NULL、ZERO_DIVIDE等),但显然没有为ORA-01400错误定义异常,我该如何处理这个特定的错误代码?

我需要这样的东西(接受其他建议)。

....
 ...     
 INSERT INTO MY_TABLE (CODE, NAME) VALUES (aCode,aName);
 COMMIT;
   EXCEPTION
     WHEN NULL_VALUES THEN /* i don't know this value , exist?*/
       Do_MyStuff();
     WHEN OTHERS THEN
       raise_application_error(SQLCODE,MY_OWN_FORMAT_EXCEPTION(SQLCODE,SQLERRM),TRUE); 
    END;

预定义的 PL/SQL 异常是special到甲骨文。你真的不能惹这些。当您想要拥有一组自己的预定义异常时,您无法像标准异常一样“全局”声明它们。相反,创建一个例外情况包含所有异常声明的包并在您的应用 code.

Example:

CREATE OR REPLACE PACKAGE my_exceptions
AS
  insert_null_into_notnull EXCEPTION;
  PRAGMA EXCEPTION_INIT(insert_null_into_notnull, -1400);

  update_null_to_notnull EXCEPTION;
  PRAGMA EXCEPTION_INIT(update_null_to_notnull, -1407);
END my_exceptions;
/

现在使用包中定义的异常

CREATE OR REPLACE PROCEDURE use_an_exception AS
BEGIN
  -- application specific code ...
  NULL;
EXCEPTION
  WHEN my_exceptions.insert_null_into_notnull THEN
     -- application specific handling for ORA-01400: cannot insert NULL into (%s)
     RAISE;
END;
/

Source: http://www.orafaq.com/wiki/Exception http://www.orafaq.com/wiki/Exception

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

处理ORACLE异常 的相关文章

随机推荐

  • 如何让第一个字母像报纸风格一样推入段落

    我创建了一些 CSS 来处理段落中的第一个字母 看起来也更大 如何使第一个字母向下并向左推 这样它就不会高于该行本身 并在需要时将其他行缩进到右侧 见附图 text article color 000 text article first
  • 错误:“连接被拒绝:连接。验证连接属性

    与主机 localhost 端口 1433 的 TCP IP 连接失败 错误 连接被拒绝 连接 验证连接属性 确保 SQL Server 实例正在主机上运行并接受端口上的 TCP IP 连接 确保到该端口的 TCP 连接未被防火墙阻止 我已
  • 在 PATH 中找不到程序“make”

    我在 Eclipse 中遇到 程序 make 未在 PATH 中找到 错误 我检查了路径变量 C cygwin bin JAVA HOME bin ANT HOME bin ANDROID SDK tools ANDROID SDK pla
  • 像耐心/克朗代克纸牌游戏一样拖动节点

    我正在做克朗代克游戏 逻辑一切正常 我只是在使用 javafx 中的 UI 时遇到问题 我一直在尝试从 桌面堆 周围移动 拖动卡片 但没有达到预期的结果 我的卡片是一个 ImageView 里面有一个图像 这些卡片位于窗格内 Pane ta
  • mysql JOIN,这是如何解释的?

    如果我为 mysql 编写一条 sql 查询 并且只指定 JOIN 没有外连接 内连接 左连接等 那么默认的连接类型是什么 例如 SELECT count FROM Students p JOIN 班级 c ON p studentId c
  • yum update / apk update / apt-get update 在代理后面不起作用

    我使用代理 无法构建 Docker 映像 我尝试过FROM ubuntu FROM centos and FROM alpine but apt get update yum update apk update failed 我的主机操作系
  • 如何捕获密码提示

    我有以下代码 更新为包括 pexpect import sys import subprocess import pexpect print 0 ssh subprocess Popen ssh A t email protected cd
  • 我需要app.config吗?

    我制作了一个应用程序 它使用 Visual Studio 的 app config 来存储有关复选框状态等的设置 效果很好 我从默认目录复制了应用程序的 exe 并运行它 我忘记了 app config 文件 但它仍然正常工作 app co
  • GSON 解析空日期字段时抛出异常

    我正在使用 GSON 反序列化一些 JSON JSON 是 employee id 297 surname Maynard givenname Ron lastlogin 员工对象有一个日期字段lastlogin public class
  • 为什么不能在 HTML 输入标签中使用 \" ?

    我想表演12 3在我的输入标签值中 我写这个
  • python 中的 stdin 和 sys.argv 有什么区别? [复制]

    这个问题在这里已经有答案了 我在一次编码挑战中被扣分 该挑战指定我需要从 STDIN 读取 这是我的输入法 def init self input self dictionary with open input r as f reader
  • 如何使用 cloud-init 安装 docker?

    我想在 Openstack 中创建实例 在通过 ssh 连接之前 这些实例中已经安装了 Docker 所以我很自然地对 Cloud init 技术感兴趣 因为它允许我们在第一次启动时在虚拟机上安装软件包 所以现在我尝试在启动时在我的实例上安
  • C# 按键枚举混淆:Keys.Alt 或 Keys.RButton |键.Shift键|按键.Alt

    我正在尝试测试是否按下了 Alt 键 我有一张类似于以下的支票 private void ProcessCmdKey Keys keyData if keyData Keys Alt System Console WriteLine Alt
  • Oracle 数据库,SQL 更新语句将不起作用 (OLEDB)

    我设置了一个数字主键和一个存储卡车 FINS 的字母数字字段 它只是数字和字母的随机组合 我不生成鳍片 这些鳍片将始终与卡车车队识别号相同 这是代码视图 storeTruckSplit truckSplit 1 Stores truck F
  • PostgreSQL JDBC4 的连接池

    最近我从以下网站下载了 PostgreSQL 的 JDBC 驱动程序here https jdbc postgresql org download html 由于我使用的是 Java 1 7 JVM 并且它是这样写的 如果您使用 1 6 或
  • 检测到调用系统库中 iPhone 上不存在的符号的尝试

    我使用的是 x code 3 2 4 我正在使用 ios4 1 sdk 当我尝试从音频工具箱调用 ExtAudioFileOpenURL 时 出现以下错误 检测到调用符号的尝试 在系统库中不是 iPhone 上显示 从函数 ZN15ID3P
  • 我如何知道哪个 /dev/input/eventX (X=0..7) 有 Linux 输入流?

    我正在尝试捕获 Linux 键盘 鼠标输入 并且我正在读取类似的事件 dev input event2 但似乎输入有时会定向到 dev input event2 有时到 dev input event3 我想知道是否有一个地方可以找出哪个流
  • eGit 合并解决方案 - 使用您的副本

    我对 eGit 还是新手 我正在尝试弄清楚到底如何让 eGit 使用我的副本解决合并冲突 无需任何更改 我指的是 eGit Wiki 上的注释 http wiki eclipse org EGit User Guide Possible m
  • 使用 Java 删除文件时出现问题 (apache commons io)

    我通过 JNI 调用 C 方法 该方法创建两个文件 给定目录中的文本日志文件和 pdf 文件 我想在执行 JNI 方法之前删除这些文件 如果存在 我正在使用 Apache commons io FileUtils forceDelete F
  • 处理ORACLE异常

    我需要处理ORA 01400 错误 http www techonthenet com oracle errors ora01400 php 无法使用异常句柄将 NULL 插入 SCHEMA TABLE NAME COLUMN NAME O