如何找出錯誤ora 07445發生時系統執行的語句

2021-09-22 06:32:20 字數 1144 閱讀 8083

在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位元組,那麼我們就不能通過這種方式得到繫結變數的值。

Kettle 資料篩選(找出錯誤資料)思路

1 原表 nnxjh66 nnzy dbo t gps info 2 新建一張表 nnxjh66 tempdb dbo t gps info 新建表nnxjh66 tempdb dbo t gps info int 3 備份資料 nnxjh66 nnzy dbo t gps info nnxjh66...

如何處理錯誤ORA 29275

問題描述 在執行查詢select from v session 會出現ora 29275 部分多位元組字元的錯誤,這是什麼原因開始我不得其解,網上也沒有介紹什麼好辦法。解決方案 經過一次增加顯示一列的方式查詢,我發現問題出在action列上,action的結構是varchar2 32 並不是每行該列...

如何讓greenplum出錯時不列印錯誤行號

雖然不知道為什麼有這個需求,但接到了這個任務。psql列印錯誤資訊在 acceptresult 呼叫棧如下 可見是在服務端就已經準備好了這個錯誤資訊。我遇到的是乙個檔案訪問錯誤,是用errcode for file access 定的錯誤型別,進一步分析發現 ereport 巨集中傳入的第二個引數 ...