博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
如何找出错误ora-07445发生时系统执行的语句
阅读量:6157 次
发布时间:2019-06-21

本文共 1070 字,大约阅读时间需要 3 分钟。

在trace file中查找错误出现时的语句主要分两个步骤:首先找到错误发生时的执行语句,然后需要找到语句中绑定变量的值。 Step 1:Find the SQL 在跟踪文件中查找字符串“Current cursor”(一般在cursor dump段的起始部分),使用current cursor后面的数字定位出错时系统的执行语句。 如果找到的这个数字为0说明没有dump出有效的执行语句。 如果找到的这个数字n不为0,接着往下查找,定位到字符串“cursor n”其中n为刚找到的数字。从10.2版本后,你可能需要定位到字符串“cursor #n”,这里cursor name后面跟随的语句就是我们需要的sql。 另外我们也可以通过查找字符串“Current SQL statement for this session”来定位我们需要查找的sql语句,通常情况下,这个语句出现在trace file文件的开始部分。 如果定位到的sql语句中引用了变量(:a1…)那么我们需要通过下面步骤2找出绑定的变量值。 Step 2:find values of the bind variables 如果定位得到的sql语句中出现了绑定变量,那么我们将会在cursor name后面发现”bind *”之类的字符串,其中×为0到n-1的值,n为sql语句中绑定变量的个数。 对每个绑定变量都有一系列的属性说明列表,下面简单描述列表后面的属性。 Dty : databype 1 varchar2 or nvarchar2             2 number             8 long             11 rowid             12 date             23 raw             24 long raw             96 char             112 clob or nclob             113 blob             114 bfile Mxl: the maximum lenth Scl: the scale(for number columns) Pre: the precision(for number columns) Value: 绑定变量的值
通过解析上面的内容,你可以得到绑定变量的类型及其数据值,也有一些情况(非常少),你在bind *后面找不到values字节,那么我们就不能通过这种方式得到绑定变量的值。

转载地址:http://biffa.baihongyu.com/

你可能感兴趣的文章
洛谷P4762 [CERC2014]Virus synthesis(回文自动机+dp)
查看>>
利用PIL和Selenium实现页面元素截图
查看>>
cdoj 树上战争(Battle on the tree) Label:并查集?
查看>>
LightOJ 1236 Pairs Forming LCM(LCM为n的数对个数)
查看>>
快速排序算法 JDK6 和JDK 7
查看>>
原生态Ajax(转)
查看>>
页面间对象传递的方法
查看>>
解决Ajax跨域问题:Origin xx is not allowed by Access-Control-Allow-Origin.
查看>>
js闭包
查看>>
Java编程小技巧集锦
查看>>
Codeforces 856C - Eleventh Birthday
查看>>
数字梯形问题
查看>>
Javascript 操作select控件大全(新增、修改、删除、选中、清空、判断存在等)...
查看>>
完全数据库脱机备份+完全数据库脱机备份案列
查看>>
New Concept English there (9)
查看>>
ES6——块级作用域
查看>>
6-SUPER关键字
查看>>
行动力决定你的水准
查看>>
python之生产者消费者模型
查看>>
linux rsync同步工具
查看>>