【问题标题】:ERROR: syntax error at or near "e2ecalc" LINE 25: when 'E2E' then e2ecalc(quoteID);Please check错误:“e2ecalc”或附近的语法错误第 25 行:当 'E2E' 时,则 e2ecalc(quoteID);请检查
【发布时间】:2021-01-13 05:49:41
【问题描述】:
if ( connMode is not null and serviceType is not null ) then
     
    if ( position('LL'  in serviceType) > 0 ) then
      PERFORM llcal(quoteID);
    else
      case connMode
      when 'E2E' then e2ecalc(quoteID);
      when 'P2E' then p2ecalc(quoteID);
      when 'P2P' then p2pcalc(quoteID);
      end case;
    end if;
  else

【问题讨论】:

  • if ( position('LL' in serviceType) > 0 ) 然后 PERFORM llcal(quoteID); else case connMode when 'E2E' then e2ecalc(quoteID) when 'P2E' then p2ecalc(quoteID) when 'P2P' then p2pcalc(quoteID) end case;万一;否则
  • 错误:“e2ecalc”处或附近的语法错误第 26 行:当 'E2E' 时,e2ecalc(quoteID) --- 得到相同的错误。
  • 错误:“e2ecalc”第 26 行或附近的语法错误:当 'E2E' 时,则为 e2ecalc(quoteID)。建议删除错误。

标签: plpgsql postgresql-9.4


【解决方案1】:

您使用程序性CASE 语句。此命令包含 PLpgSQL 语句(不是 SQL CASE 之类的表达式)。你应该在那里使用PERFORM 声明。

case connMode
  when 'E2E' then PERFORM e2ecalc(quoteID);
  when 'P2E' then PERFORM p2ecalc(quoteID);
  when 'P2P' then PERFORM p2pcalc(quoteID);
end case;

【讨论】:

  • 非常感谢先生。非常感谢先生。它有效。
猜你喜欢
  • 1970-01-01
  • 2021-01-03
  • 2015-07-24
  • 2017-02-20
  • 1970-01-01
  • 2023-02-13
  • 1970-01-01
  • 2021-07-07
  • 2019-09-08
相关资源
最近更新 更多