-3
我有一個存儲過程只使用SELECT語句(通過使用其他存儲過程)求和和檢索數據。在這些存儲過程中沒有更新或插入,當然所有涉及的數據都是靜態的。這個主存儲過程返回double。奇怪的是,如果我執行它幾次,通常3到4次之後,結果與前3 - 4次結果不同,然後繼續執行它。PostgreSQL中的查詢結果不一致?
我想它的,因爲計算機精度問題,但結果仍在100萬的差別可高達4〜8
我有一個存儲過程只使用SELECT語句(通過使用其他存儲過程)求和和檢索數據。在這些存儲過程中沒有更新或插入,當然所有涉及的數據都是靜態的。這個主存儲過程返回double。奇怪的是,如果我執行它幾次,通常3到4次之後,結果與前3 - 4次結果不同,然後繼續執行它。PostgreSQL中的查詢結果不一致?
我想它的,因爲計算機精度問題,但結果仍在100萬的差別可高達4〜8
問題是最有可能在這裏:
IF (FOUND) THEN
vSaldo := vRecSearchSaldoAwal.balance;
RAISE NOTICE 'Balance Adjustment: %', vRecSearchSaldoAwal.balance;
...
SELECT (_dateStart - INTERVAL '1 day'), NULL, NULL, vSaldo, TX_STOCKADJ, 'Saldo Sebelumnya' INTO vRetval;
RETURN NEXT vRetval;
ELSEIF (NOT FOUND) THEN
vSaldo := SumQtyBeginningBal(_idproduct, _idGudang);
...
短語ELSEIF (NOT FOUND) THEN
查看FOUND
值,該值由IF/IFELSE塊內的最後一條SELECT
語句設置。您可能需要改爲使用簡單的ELSE
。
你能分享你的代碼嗎? – Mureinik
http://pastebin.com/qtDyjufU – Mideel
你好米蒂爾,歡迎來到SO。查看關於使用[最小化,完整且可驗證的示例]提問的指導(http://stackoverflow.com/help/mcve)。否則,幾乎不可能給你一個正確的答案。 – Patrick