是的,我问了很多问题,因为我在这里学到的东西多于书本。我已经创建了一个简单的代码块来生成所需的输出,但对于我当前的学习块来说似乎很简单。这个代码是否适用于那些尝试更新捐赠者表的iddonor的人已经存在? Haven尚未学习程序或功能,但可以猜测这将是一种更明智的方法。如果条件出现或我应该在声明中添加更多内容,我到目前为止满足和异常处理程序是什么?如果提供,请欣赏建议和学习要点。
我的代码:
PostProcessable...
答案 0 :(得分:1)
DUP_VAL_ON_INDEX 异常。
让我们看一个简单的例子。我创建了一个包含单列的表,并将其作为主键,这将由隐式唯一索引支持。
<强>设置强>
SQL> CREATE TABLE t(ID NUMBER);
Table created.
SQL> ALTER TABLE t ADD CONSTRAINT t_uk PRIMARY KEY(ID);
Table altered.
SQL> INSERT INTO t(ID) VALUES(1);
1 row created.
SQL> COMMIT;
Commit complete.
SQL> SELECT * FROM t;
ID
----------
1
SQL> BEGIN
2 INSERT INTO t(ID) VALUES(1);
3 END;
4 /
BEGIN
*
ERROR at line 1:
ORA-00001: unique constraint (LALIT.T_UK) violated
ORA-06512: at line 2
因此,违反了唯一约束。我们来看看如何捕获 DUP_VAL_ON_INDEX 异常:
测试用例
SQL> SET serveroutput ON
SQL> BEGIN
2 INSERT INTO t(ID) VALUES(1);
3 EXCEPTION
4 WHEN DUP_VAL_ON_INDEX THEN
5 DBMS_OUTPUT.PUT_LINE('Duplicate value on index');
6 END;
7 /
Duplicate value on index
PL/SQL procedure successfully completed.
SQL>
顺便说一句,DBMS_OUTPUT仅用于演示目的,理想情况下,您不会在生产代码中使用它。