【问题标题】:How to execute Redshift procedural PL/pgSQL code like a script?如何像脚本一样执行 Redshift 过程 PL/pgSQL 代码?
【发布时间】:2021-03-01 20:36:35
【问题描述】:

我一直想知道是否可以编写 a-la oracle “匿名块”脚本。 基本上运行任何 Redshift 过程代码,但在 SQL Workbench/J 等客户端中删除创建过程的第一行?是否有可能和/或我们是否需要在 SQL Workbench/J 中调整一些配置?

Declare
Xxx integer;

BEGIN
 Null;
 any PL/pgSQL code;
 
EXCEPTION when others
 Raise xxx ;
 
END;
$$ LANGUAGE plpgsql;

或者 - 最终 - 可以/可以使用 postgres 命令行 https://www.postgresql.org/docs/current/app-psql.html

【问题讨论】:

    标签: oracle amazon-redshift plpgsql


    【解决方案1】:

    这会/可以使用 postgres 命令行实现吗

    自 9.0 版起,PostgreSQL 就有 DO command 用于此目的。您的示例将转换为:

    DO
    $do$
    DECLARE
       xxx integer;
    BEGIN
       -- any PL/pgSQL code;
    EXCEPTION WHEN OTHERS THEN  -- optional
       RAISE EXCEPTION 'My text: xxx';
    END
    $do$;
    

    但 Redshift 不支持这一点。在8.2版本被fork后,differs in many aspects.

    【讨论】:

    • 感谢 Erwin 的洞察力,可惜 redshift 缺少这么多功能:(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    • 1970-01-01
    • 1970-01-01
    • 2016-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多