首页 > 解决方案 > 如何像脚本一样执行 Redshift 过程 PL/pgSQL 代码?

问题描述

我一直想知道是否可以编写 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

标签: oracleamazon-redshiftplpgsql

解决方案


将/可以使用 postgres 命令行来实现吗

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

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 版本被分叉后,它在许多方面有所不同


推荐阅读