【问题标题】:Inconsistent results with the same query in PostgreSQL?PostgreSQL 中相同查询的结果不一致?
【发布时间】:2016-06-10 14:48:52
【问题描述】:

我有一个存储过程,它只使用 SELECT 语句求和和检索数据(通过使用其他存储过程)。这些存储过程中根本没有更新或插入,当然所有涉及的数据都是静态的。这个主存储过程返回双精度。奇怪的是,如果我执行几次,通常在 3 到 4 次之后,结果与前 3 到 4 次结果不同,那么尽管我继续执行它,但它保持不变。

我以为是电脑精度问题,结果还是在100万以下,相差可达4到8。

【问题讨论】:

标签: database postgresql stored-procedures


【解决方案1】:

问题很可能在这里:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-09-21
    • 1970-01-01
    • 2010-09-29
    • 2015-01-23
    • 2021-10-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多