sql定位过程报错_如何得到plsql中执行时报错的SQL的位置行号
如何得到
PL/SQL
中执行时报错的
SQL
的位
置行号
一、引言
在进行
PL/SQL
开发的时候经常会写以下代码,
declare
n1 varchar(10);
n2 varchar(10);
n3 varchar(10);
begin
select name into n1 from test_tab1 where id = 2;
select name into n2 from test_tab2 where id = 2;
select name into n3 from test_tab3 where id = 2;
EXCEPTION
WHEN OTHERS THEN
rollback;
insert error_info_table values(‘Proc Name’,substr(sqlerrm,1,200));
commit;
end;
当
select into
或其他类型语句出现错误的时候,利用
exception
截获住,把错误记
录到
error
table
里,以便查找错误信息,但是这样做在查找问题的时候仍然有些麻烦,我
们必须一个一个
select
语句去执行,看看错误到底发生在那条语句。
二、故障现象
有些时候我们可能会用以下方法来解决这个问题
1.
每条语句都加一组
begin
„
exception
„
end
。
2.
在每条语句后都加一个标记变量,最后把改标记变量也存入
error table
。
很明显,这
2
中方法都会增加代码编写的工作量和复杂度。
那么是否有方法能得到,发生错误的代码行号呢?
三、处理过程
在
10gR1
及之前,只能不去截获
exception,
让错误发生,从错误信息中得到错误发生
的位置,当然这肯定是不能接受的。
从
10gR2
后,我们可以利用
package DBMS_UTILITY.format_error_backtrace
来的到
发生错误语句的行号。
请看以下例子:
SQL> declare
2 n1 varchar(10);
3 n2 varchar(10);
4 n3 varchar(10);
5 begin
6 select name into n1 from test_tab1 where id = 2;
7 select name into n2 from test_tab2 where id = 2;
8 select name into n3 from test_tab3 where id = 2;
9 EXCEPTION
10 WHEN OTHERS THEN
11 DBMS_OUTPUT.PUT_LINE(substr(sqlerrm,1,200));
sql定位过程报错_如何得到plsql中执行时报错的SQL的位置行号相关推荐
- mysql执行效率低_如何查询mysql中执行效率低的sql语句
展开全部 一.MySQL数据库有几个配置选项可以32313133353236313431303231363533e59b9ee7ad9431333337373563帮助我们及时捕获低效SQL语句 1, ...
- Python中删除set中指定元素元素不存在时不报错:s.discard()元素不存在时报错:s.remove()
[小白从小学Python.C.Java] [Python-计算机等级考试二级] [Python-数据分析] Python中删除set中指定元素 元素不存在时不报错:s.discard() 元素不存在时 ...
- 在Hive中执行DDL之类的SQL语句时遇到的一个问题
在Hive中执行DDL之类的SQL语句时遇到的一个问题 作者:天齐 遇到的问题如下: hive> create table ehr_base(id string); FAILED: Execut ...
- Datastage:在执行时报错ORA-1405
ZY_SHUQIANXJ_V,0: The OCI function OCIStmtFetch2 returned status -1. Error code: 1,455, Error messag ...
- 【Qt】Qt程序编译成功,执行时报错:程序异常结束,crashed
[Qt]Qt程序编译成功,执行时报错:程序异常结束,crashed 错误打印信息 Starting E:*exe- 程序异常结束. E:*.exe crashed. 原因 使用到外部库,编译时,指定了 ...
- Bash中执行存储过程或普通的SQL命令
演示: 在bash中执行一个存储过程和一个普通的SQL语句 0. 前提条件: 数据库:Oracle10g 表:oracle自带的emp表,默认有数据如下: 1. 在bash中执行oracle存储过程 ...
- mysql表中插中文报错_向mysql表中插入含有中文的数据时报错:[Err] 1366
创建的表及插入语句如下: create table students (name varchar(25), class varchar(25), grade int); insert into stu ...
- python的执行过程_在交互式环境中执行Python程序过程详解
前言 相信接触过Python的伙伴们都知道运行Python脚本程序的方式有多种,目前主要的方式有:交互式环境运行.命令行窗口运行.开发工具上运行等,其中在不同的操作平台上还互不相同.今天,小编讲些Py ...
- 已知三角形三边长怎么求面积_解三角形问题中的常见错解分析
解三角形问题是个难点,怎样才能突破这个难点呢? 只有正确理解三角形中的边角关系,即三角形中的边角等量关系.边角的不等关系及内角和关系,才能克服这个难点. 下面快和包sir一起对解三角形问题中的常见错误 ...
最新文章
- 多种脚本语言生成九九乘法口诀表
- zoj 3841 Cards
- 递归概念分类注意事项
- mysql黄色版_Linux机上运行多个版本的MySQL
- Shell中计算模块 bc的使用
- [OS] 死锁相关知识点以及银行家算法详解
- 三重积分先二后一和先一后二的碎碎念
- 风尚云网学习-h5的input:type属性的image属性
- 四川自考计算机信息管理专业,计算机信息管理专业2019年10月四川自考科目及考试时间[本科]...
- word怎么恢复自动保存_如何使用自动恢复自动保存Word文档并恢复丢失的更改
- Linux 系 统 目 录 详 解
- 基于java(springboot框架)旅游景区景点购票系统 java毕业设计选题课题作品 毕业论文
- php工作心得简50字,50字简短个人工作总结
- MS104-SH4 与Toppers/JSP(µItron)嵌入式系统构筑
- 基于数据挖掘的智能停车场运营数据分析系统
- QQ的在线拼音输入法
- python手机触屏代码_JS移动客户端--触屏滑动事件及js手机拖拽效果
- 墨客IPFS子链技术交流
- 计算机博士c类会议,我院研究生参加CSCWD国际学术会议(CCF C类)
- linux系统下,wps缺少windows字体的问题。