千家信息网

PostgreSQL程序中批量绑定时怎么使用save exceptions记录错误数据

发表于:2024-09-25 作者:千家信息网编辑
千家信息网最后更新 2024年09月25日,这篇文章主要讲解了"PostgreSQL程序中批量绑定时怎么使用save exceptions记录错误数据",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习
千家信息网最后更新 2024年09月25日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安全错误 数据库的锁怎样保障安全 博弈论的网络安全 山东超频服务器代理价格 重庆计算机网络技术本科院校 阿里数据库国家级大奖 服务器内存的作用 疫情数据库能查到自己的信息吗 数据库查出数据太多 实况数据库小程序叫什么 广东潮流软件开发服务价格优惠 北京智能软件开发制作 助讯通服务器地址怎么查询 oracle数据库硬盘占用大 永恒之塔数据库50级短剑 个性化网络安全调试 画饭圈乱象绘网络安全曹妃甸区 网络安全专业最好的大学中国 宜兴微型计算机网络技术推广 特朗普网络安全顾问输错密码 玩转数据库答案 数据库结构设计及应用 威海联想服务器代理经销商 网络安全应急演练怎么安排 江北区一站式软件开发流程要求 湖北服务器硬盘维修 服务器不能打开共享文件夹 在哪里找服务器 iot软件开发产品经理 服务器安防盾 物联网需要的软件开发 数据库访问后如何关闭
0