declare my_cursor procedure for gen_id(:ls_arg) using sqlca;
long ll_number
ll_number = 0
execute my_cursor;
if sqlca.sqlcode <> 0 then
...
else
fetch lsp_ncounter into :ll_number;
end if
...
return(ll_number)
我們系統中所有有關操作都是使用這種方法取回傳值的,并且都是正確的.
而近幾天我在一臺服務器上測驗的時候居然出錯了,取出來的資料被截掉了一位:
例如:資料庫中是1234,而通過fetch lsp_ncounter into :ll_number;后,
ll_number居然是123,我暈,有誰遇到到這個問題么?
我在很多機器上測驗都是正確的
uj5u.com熱心網友回復:
補充一下:我用的是PB11uj5u.com熱心網友回復:
有沒有close my_cursor;uj5u.com熱心網友回復:
都有的,這項功能已用過好幾年了,最近才出現這種情況,出問題的那臺機器是服務器,系統是windows 2003.我如果不呼叫SP 來取那項資料也是正常的,
如: select column into :ll_number
from table
where key = '....'
則ll_number = 1234
uj5u.com熱心網友回復:
其它臺不會就這臺會?,以前這一臺會不會呢?確實挺奇怪的,如果說其它臺測驗結果正常的話,那應該是這一臺有問題了uj5u.com熱心網友回復:
是的,就這臺服務器會出現這種情況.uj5u.com熱心網友回復:
請注意long欄位,在oracle中long欄位是可以是長字符變數,可以存2000個字符,不信你試試,在oracle中定義長整型,最號用比如說 test number(18, 0)等等定義欄位,不建議用long來定義uj5u.com熱心網友回復:
不知,幫頂uj5u.com熱心網友回復:
以后需再關注,現在先幫你頂一下轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/112154.html
標籤:數據庫相關
