代码之家  ›  专栏  ›  技术社区  ›  Matt

执行到以接受空值

  •  0
  • Matt  · 技术社区  · 7 年前

    我发现了错误

    我已尝试使用IF EXISTS()

    是否有默认方法来执行此操作?

    1 回复  |  直到 7 年前
        1
  •  1
  •   Vao Tsun    7 年前

    execute format('select 1 where false') into t 不会把什么放在t上,所以以后 execute t

    错误:EXECUTE的查询字符串参数为null

    因此,简单的合并将有助于:

    t=# do $$
    declare t text;
    begin
    execute format('select 1 where %L',false) into t;
    execute coalesce(t,'select now()') into t;
    raise '%',t;
    end;
    $$
    ;
    ERROR:  2017-07-11 16:11:03.149521+00
    Time: 0.349 ms