[Amazon](500310) 无效操作:在“$$”处或附近未终止的美元引号字符串

Ric*_*k V 1 stored-procedures amazon-redshift

按照AWS 文档通过 Redshift 查询编辑器或 SQL Workbench/J 创建存储过程,会出现以下错误:Amazon Invalid operation: unterminated Dollar-quoted string at or near "$$。这是我尝试的通用代码示例:

CREATE OR REPLACE PROCEDURE
load_inventory () AS $$
BEGIN 
INSERT INTO inventory(sku,qty,location) 
SELECT sku, qty, 'location name' FROM location_inventory; 
END; 
$$
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)

在 Redshift 中成功创建存储过程应该如何编写语句?

Ric*_*k V 5

使用单引号而不是美元引用的字符串解决了这个问题。请注意,SELECT 语句中使用的字符串具有重复的单引号。

CREATE OR REPLACE PROCEDURE
load_inventory () AS '
BEGIN 
INSERT INTO inventory(sku,qty,location) 
SELECT sku, qty, ''location name'' FROM location_inventory; 
END; 
'
LANGUAGE plpgsql;
Run Code Online (Sandbox Code Playgroud)