小编arn*_*old的帖子

如何在不创建函数的情况下运行plpgsql?

我想在Postgres中以编程方式运行SQL,而无需创建函数。

原因:确保我的plpgsql可以事先工作,并且在将查询提交给函数之前先对其进行“解释分析”。

我是Postgres的新手,我认为这很简单。我找不到任何示例。也许不可能吗?下面的代码如何工作?

DO
$body$
DECLARE
  v_name_short VARCHAR;
BEGIN

v_name_short := 'test Account 1';

     RETURN QUERY
        SELECT 
            a.name_short, 
            a.name_long
        FROM enterprise.account a 
        WHERE 
            CASE WHEN v_name_short IS NOT NULL THEN
               LOWER(a.name_short) = LOWER(v_name_short)
            ELSE
               1 = 1   
            END;
END;
$body$
LANGUAGE 'plpgsql';
Run Code Online (Sandbox Code Playgroud)

同样,这里的目标是测试我的SQL,就像在这种情况下,我想确保我的CASE语句仍在使用我创建的索引(LOWER(name_short))。无论如何,我收到此错误消息:

错误:无法在非SETOF函数中使用RETURN QUERY

我要问的在Postgres中可能吗?如果没有,是否可以查询函数内部的分析计划?

postgresql plpgsql

5
推荐指数
3
解决办法
6124
查看次数

标签 统计

plpgsql ×1

postgresql ×1