PostgreSQL程序中批量绑定时怎么使用save exceptions记录错误数据
发表于:2026-11-01 作者:千家信息网编辑
千家信息网最后更新 2026年11月01日,这篇文章主要讲解了"PostgreSQL程序中批量绑定时怎么使用save exceptions记录错误数据",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习
千家信息网最后更新 2026年11月01日PostgreSQL程序中批量绑定时怎么使用save exceptions记录错误数据二:程序处理块
这篇文章主要讲解了"PostgreSQL程序中批量绑定时怎么使用save exceptions记录错误数据",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"PostgreSQL程序中批量绑定时怎么使用save exceptions记录错误数据"吧!
一:利用scott下的emp表构造数据
--构造数据Create Table t1 As Select * From scott.emp Where 1=2;Alter Table t1 Add Constraint pk_emp_empno Primary Key(empno);Alter Table t1 Modify(ename Not Null);Alter Table t1 Add Constraint chk_sql check(Sal >= 800);Create Table t2 As Select * FROM scott.emp;Insert Into t2 Select * FROM scott.emp Where empno In(7369,7499);Update t2 Set sal = 700 Where empno In(7521,7566);Update t2 Set ename = Null Where empno = 7698;Create Table t_error As Select * From scott.emp Where 1=2;Alter Table t_error Add(error_idx number,ErrorCode Varchar2(50));
二:程序处理块
--一次获取所有ORA-24381错误的记录Declare --定义ORA-24381对应的异常 Excp_Bulk_Errors Exception; --将异常和错误号关联 Pragma Exception_Init(Excp_Bulk_Errors, -24381); --定义存储Error Index和Error Code的变量 n_Err_Idx Number; Vc_Err_Code Varchar2(50); Cur_Ref_Emp Sys_Refcursor; Pi_Fetch_Limit Pls_Integer := 1000; Type Typ_Emp Is Table Of Emp%Rowtype Index By Binary_Integer; Typ_Emp_Rec Typ_Emp;Begin Open Cur_Ref_Emp For Select * From T2; --批量获取 Fetch Cur_Ref_Emp Bulk Collect Into Typ_Emp_Rec Limit Pi_Fetch_Limit; --批量执行 Forall i In 1 .. Typ_Emp_Rec.Count Save Exceptions Execute Immediate 'insert into t1 values(:empno,:ename,:job,:mgr,:hiredate,:sal,:comm,:deptno)' Using Typ_Emp_Rec(i).Empno, Typ_Emp_Rec(i).Ename, Typ_Emp_Rec(i).Job, Typ_Emp_Rec(i).Mgr, Typ_Emp_Rec(i).Hiredate, Typ_Emp_Rec(i).Sal, Typ_Emp_Rec(i).Sal, Typ_Emp_Rec(i).Deptno;Exception When Excp_Bulk_Errors Then --清空错误日志表 Execute Immediate 'delete from t_error'; For i In 1 .. Sql%Bulk_Exceptions.Count() Loop n_Err_Idx := Sql%Bulk_Exceptions(i).Error_Index; Vc_Err_Code := Sql%Bulk_Exceptions(i).Error_Code; Execute Immediate 'insert into t_error values(:empno,:ename,:job,:mgr,:hiredate,:sal,:comm,:deptno,:idx,:code)' Using Typ_Emp_Rec(n_Err_Idx).Empno, Typ_Emp_Rec(n_Err_Idx).Ename, Typ_Emp_Rec(n_Err_Idx).Job, Typ_Emp_Rec(n_Err_Idx).Mgr, Typ_Emp_Rec(n_Err_Idx).Hiredate, Typ_Emp_Rec(n_Err_Idx).Sal, Typ_Emp_Rec(n_Err_Idx).Sal, Typ_Emp_Rec(n_Err_Idx).Deptno, n_Err_Idx, Vc_Err_Code; End Loop;End;
感谢各位的阅读,以上就是"PostgreSQL程序中批量绑定时怎么使用save exceptions记录错误数据"的内容了,经过本文的学习后,相信大家对PostgreSQL程序中批量绑定时怎么使用save exceptions记录错误数据这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
错误
数据
程序
学习
内容
变量
就是
思路
情况
文章
日志
更多
知识
知识点
篇文章
跟着
问题
关联
处理
存储
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
为想互联网科技怎么样
互联网科技巨头监管
疫情对互联网科技公司影响
远信互联网科技
奇酷互联网络科技
智慧科技互联网
电子科技大学互联网
深圳天众互联网科技公司
深圳期待互联网科技
国外互联网科技网站
恒银科技与互联网金融
科技与互联网哪个更好
福建科技产业互联网发展
广州富喜互联网络科技
半导体行业属于互联网高科技类吗
东营紫格互联网科技
江苏互联网智能科技产品出厂价
张家口科技产业互联网平台
科技和互联网行业的特点
互联网科技创新方面的资料
互联网科技卖菜
与互联网科技公司
互联网未来科技
隆华科技工业互联网
移动互联网科技股
上海宁丞科技互联网
搜狐科技互联网
乌苏新华互联网科技做什么的
玉溪新华互联网科技怎么选
互联网金融金融科技