amazon-redshift - 立即执行错误
问题描述
我正在使用 Amazon RedShift SQL(多年前曾使用过 Oracle),并且每次尝试立即执行时都会遇到语法错误。我什至从 PostgreSQL 文档页面复制并发布了代码(例如使用 sprintf),但无济于事。我认为下面应该工作......?
declare
stm varchar(200);
begin
stm = 'GRANT SELECT, INSERT, TRIGGER, UPDATE, DELETE, REFERENCES, RULE ON public.angus TO adcd;';
execute immediate stm;
end;
Amazon 无效操作:“varchar”处或附近的语法错误
解决方案
有两个问题:
您使用
EXECUTE IMMEDIATE
PostgreSQL 文档中找不到的,因为它是 Oracle 语法。PL/pgSQL 语句是EXECUTE
.您正在尝试将 PL/pgSQL 代码作为 SQL 语句执行,但这是行不通的。
使用
DO
声明:DO $$DECLARE ... END;$$;
推荐阅读
- javascript - 如何删除数组中的重复属性值
- visual-studio-code - AttributeError:模块“linecache”没有属性“lazycache”
- graphql - Gatsby StaticQuery 不返回值
- apache-kafka - KSQL嵌套json需要在多行中保存键
- kubernetes - 多个入口对象一项服务
- c# - 在模型周围移动模型件
- vba - 为什么我看到运行时错误 3421 - 访问 vba?
- javascript - 如何在 Typescript 中导出 Axios.create
- python - 组合两个 numpy 数组
- java - 如何转换列表