台灣最大程式設計社群網站
線上人數
787
 
會員總數:246038
討論主題:189625
歡迎您免費加入會員
討論區列表 >> Oracle >> package的結果跟用SQL的結果不一樣
[]  
[我要回覆]
1
回應主題 加入我的關注話題 檢舉此篇討論 將提問者加入個人黑名單
package的結果跟用SQL的結果不一樣
價值 : 10 QP  點閱數:1312 回應數:2
樓主

CCS
門外漢
0 48
654 58
發送站內信

請教各位

最近遇到了一個奇怪的bug

就算是統計金額上某些資料的結果會有錯誤(大部分還是對的,只有一兩筆錯)

後來發現是某個package的回傳結果有誤

因為該package並不是我開發

所以我依照package的內容找出select並count回傳欄位的SQL指令來執行

想藉此找出是哪個where條件出現後才有錯誤

但奇怪的是我把全部條件輸入完之後count的金額居然是正確的

包含那些有問題的資料都顯示了正確的金額

但是我用單步執行去執行package該select的結果卻是錯的?

我有用監控式監控該變數

所以很確定在package中select完的結果就是錯的

我在test輸入的參數明明就跟我在PL/SQL上下的是一樣的

用的也是同一個資料庫

但是在單步執行中我看到select並count的結果是直接回傳output然後就輸出了

所以應該也沒哪裡有改到

況且其他資料也是這樣跑結果也正常

請問有什麼可能會導致你下SQL的結果跟跑package的結果完全不一樣呢(相同參數相同資料庫的table)

謝謝

搜尋相關Tags的文章: [ package ] ,
本篇文章發表於2014-04-26 10:34
1樓
回應

花旗蔘
檢舉此回應
有範例 可以給來研究嗎?
本篇文章回覆於2014-05-05 16:52
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
2樓
是可能發生的...
若只是取得資料建議加入set transaction read only ;
交易隔離控制某些狀況下確實必須在Package body 程序裡加入的,
或者是定義 Set Transaction Isolation level read committed; (請自行查閱)
本篇文章回覆於2014-11-25 10:33
== 簽名檔 ==
--未登入的會員無法查看對方簽名檔--
   
1

回覆
如要回應,請先登入.