如何找出错误ora-07445发生时系统执行的语句
生活随笔
收集整理的這篇文章主要介紹了
如何找出错误ora-07445发生时系统执行的语句
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
在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字節,那么我們就不能通過這種方式得到綁定變量的值。
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字節,那么我們就不能通過這種方式得到綁定變量的值。
轉載于:https://www.cnblogs.com/einyboy/archive/2012/12/14/2817634.html
總結
以上是生活随笔為你收集整理的如何找出错误ora-07445发生时系统执行的语句的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 使用ServiceStackRedis链
- 下一篇: C语言32个关键字