PL/SQL 的 事务处理
原文连接 http://blog.csdn.net/lhl6688/article/details/42874109
BEGIN
DECLARE
V_COUNT INTEGER; -- 表中记录的行数
V_INT_VAL MY_TEST.ONLY_INT%TYPE; -- 使用%TYPE关键字参照某表某字段类型声明变量
BEGIN
V_INT_VAL := 123456;
-- 插入一条正确的数据
INSERT INTO MY_TEST VALUES ('TEST_SUCCESS', V_INT_VAL);
-- 查询条数为1条,我们发现插入成功了
SELECT COUNT(*) INTO V_COUNT FROM MY_TEST;
DBMS_OUTPUT.put_line('MY_TEST表中有' || V_COUNT || '条记录');
-- 插入一条错误的数据,因为第二个字段为int型,插入字符数据肯定会出错
INSERT INTO MY_TEST VALUES ('TEST_FAIL', 'ABC');
-- 最后提交更改
COMMIT;
EXCEPTION
-- 异常处理
WHEN OTHERS THEN
ROLLBACK; -- 异常时回滚,这样第一次插入的正确数据也不会保存到数据库
DBMS_OUTPUT.put_line('[PL/SQL 事务]中出现异常,错误代码:ORA' || sqlcode);
-- 我们验证一下表里的数据为0条
SELECT COUNT(*) INTO V_COUNT FROM MY_TEST;
DBMS_OUTPUT.put_line('回滚后,MY_TEST表中有' || V_COUNT || '条记录');
END; -- 可执行语句结束
最新文章
- MySQL 5.7 安装教程
- ASP.NET 5 已死 - 隆重介绍 ASP.NET Core 1.0 和 .NET Core 1.0
- Divide and conquer:Garland(POJ 1759)
- 重写(Override)与重载(Overload)
- Django的Many-to-Many(多对多)模型
- Mac Pro更换SSD后,在Win7下启用ACHI的方法AHCI
- java编程常用技术
- MATLAB中如何使用遗传算法
- 深入浅出Z-Stack 2006 OSAL多任务资源分配机制
- 对select into表复制的一点思考
- oracle 报Ora-01008错误:oracle 并非所有变量都已绑定的原因.TO_number();动态执行select..into..语句时
- [LeetCode]题解(python):147-Insertion Sort List
- lines(最大区间和)
- 开展:随笔记录 OSGI的jar增加了一些小问题和注意事项
- 数据结构之B树、B+树(一)
- 2018-2019-2 20165205 网络攻防Exp3免杀原理与实践
- Ingeter与int的比较
- php中parse_url函数解析
- MP实战系列(十八)之XML文件热加载
- [Log]ASP.NET之HttpModule 事件执行顺序
热门文章
- EEPlat 主子表和对象引用配置实例
- Python 007- python的各种函数
- 设置netbeans文件编码格式
- 基于EasyDarwin云平台实现的EasyClient客户端与EasyCamera摄像机之间的对讲与云台控制功能
- Spark SQL includes a cost-based optimizer, columnar storage and code generation to make queries fast.
- Mongoose学习(2)
- 【LeetCode】Jump Game II
- php memcache知识点总结
- UVA 11752 The Super Powers —— 数学与幂
- CSU - 1530 Gold Rush —— 二进制