上上周,帮别人调试存储过程,触发器中的异常处理没有进行处理。把代码贴出来。
create or replace trigger TRG_test
before insert or delete or update on user
for each row
DECLARE
Table_name varchar(255);
begin
select TABLE_NAME into Table_name from user_triggers where TRIGGER_NAME='TRG_test';
begin
update nc set deletetime = to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
where id=Table_name;
exception
when others then
DBMS_OUTPUT.PUT_LINE('delete');
end;
end if;
if UPDATING then
begin
update nc set updatetime = to_char(sysdate,'yyyy-mm-dd hh24:mi:ss')
where id=Table_name;
exception
when others then
DBMS_OUTPUT.PUT_LINE('update');
end;
end if;
exception
when others then
DBMS_OUTPUT.PUT_LINE('EXCEPTION');
end;
delete或update的时,出现异常时,并没有打印‘delete’或‘update’,不知道为什么,于是加一个参数判断是否存在这条记录,如果不存在再插入,简略的实现
select count(*) into countN from nc where id = Table_name;
if countN >1 then
update……
end if;
。
另外触发器一般不能用commit和rollback语句,除非声明事务,加上
pragma autonomous_transaction;
分享到:
相关推荐
本套教程全面覆盖了Oracle数据库的核心编程元素,包括存储过程、函数、触发器、异常处理、游标和存储包,这些都是数据库开发和管理中的关键概念。 首先,我们来详细了解存储过程。存储过程是一组预编译的SQL语句,...
这些异常通常在存储过程或触发器中使用,以便在遇到预期之外的情况时,能够优雅地处理错误,如回滚事务、释放资源等。本文将深入探讨如何使用`raiserror`函数来抛出自定义异常。 `raiserror`是SQL Server中用于生成...
Oracle 高级语法是指在 Oracle 数据库管理系统中使用的高级语法结构,包括事务、函数、存储过程、触发器、异常等。这些语法结构是 Oracle 数据库开发和管理的核心内容,对于数据库开发者和管理员来说是必备的知识。 ...
如果没有异常处理部分,该异常处理部分将传给包含该块的块。一旦将控制转给异常处理部分,没有办法再将控制返回给该块的执行部分。 异常处理的语法如下: ``` Exception when exception_name then 处理错误语句...
- **异常处理**:触发器还包含了异常处理部分,用以捕捉并响应`book_loan_fail`、`book_loan_success`以及其他未预见的错误情况。在不同异常情况下,系统会生成相应的消息,如`'failtoloanbook!'`、`'...
在ASP.NET开发环境中,为了确保转账操作的准确性和一致性,通常会采用事务处理和触发器来实现。以下是对这两个关键概念...在实际开发中,还需要考虑性能优化、并发控制和异常处理等方面,以提供高效且用户友好的服务。
本篇文章将详细探讨PL/SQL中的关键概念,包括函数、包、触发器、异常处理以及游标,以帮助学习Oracle和PL/SQL的朋友们深入理解这些重要知识点。 1. **函数**:在PL/SQL中,函数是一段可重用的代码,用于执行特定...
触发器类似于过程和函数,具有声明、执行和异常处理的部分,但其独特之处在于由特定事件驱动,无需外部调用即可自动执行。这些事件通常包括对数据库表的INSERT、UPDATE和DELETE操作,以及数据库的启动与关闭等系统...
例如,当你执行一个插入操作时,触发器将在后台执行,如果触发器抛出错误,你的C#代码需要捕获并处理这些异常。 在提供的文件列表中,"SQL Server触发器创建、删除、修改、查看示例步骤(简单教程).txt"应该是详细的...
错误处理通常用于处理不可预见的运行时错误,而异常处理则适合于控制流程,并在遇到预期外情况时提供明确的处理路径。 总结一下,PHP的错误处理包括简单的`die()`/`exit()`,以及自定义错误处理器和错误触发器。...
6. **异常处理**:同时,触发器应该包含适当的错误处理机制,以防数据不合法或者计算过程中出现异常。 7. **优化性能**:虽然游标提供了一种灵活的方式来处理数据,但它们可能会对性能产生影响。因此,在实际应用中...
PL/SQL中的异常处理结构通常由三个部分组成:异常声明(EXCEPTION)、异常触发(RAISE)和异常处理(EXCEPTION WHEN...THEN...)。当程序执行过程中发生异常时,它会立即中断正常流程,并跳转到异常处理部分来处理。...
在高级编程中,存储过程可以包含条件判断、循环、异常处理等控制流结构,甚至可以嵌套调用其他存储过程或函数。此外,存储过程还可以用于实现游标、批量处理、事务管理和并发控制,为数据库应用程序带来更大的灵活性...
6. 错误处理和日志记录:说明系统如何处理触发器执行过程中的异常,以及如何记录操作历史。 7. 系统实现:介绍.NET 2003框架下的开发环境和编程语言,以及与SQL Server 2000的交互方式。 8. 系统测试和评估:描述...
3. **错误处理**:确保触发器中有适当的错误处理机制,比如通过`TRY...CATCH`块来捕捉并处理潜在的运行时错误。 总结来说,SQL添加触发器是一种强大的工具,可以帮助开发人员实现复杂的数据一致性规则和业务逻辑。...
- 应添加适当的错误处理机制,例如使用`TRY...CATCH`块来捕获并处理异常。 #### 总结 通过以上分析,我们可以清楚地理解题目中的触发器是如何工作的。当`userInfo`表中的`loginName`字段发生变化时,该触发器会被...
此触发器将在插入或更新操作之前检查新价格是否低于0,如果是,则会抛出异常并阻止操作继续执行。 #### 结论 MySQL 5.0版本中引入的触发器功能极大地增强了数据库的功能性和灵活性,使得开发者能够更方便地控制...