[Amazon](500310) 无效操作:"$$" 处或附近未终止的美元引号字符串
Posted
技术标签:
【中文标题】[Amazon](500310) 无效操作:"$$" 处或附近未终止的美元引号字符串【英文标题】:[Amazon](500310) Invalid operation: unterminated dollar-quoted string at or near "$$ 【发布时间】:2019-06-03 19:31:36 【问题描述】:按照AWS documentation 通过 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;
应该如何编写语句才能在 Redshift 中成功创建存储过程?
【问题讨论】:
【参考方案1】:使用单引号代替美元引号字符串解决了这个问题。请注意,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;
【讨论】:
以上是关于[Amazon](500310) 无效操作:"$$" 处或附近未终止的美元引号字符串的主要内容,如果未能解决你的问题,请参考以下文章
AMAZON 500310:无效操作:“Drop”处或附近的语法错误
[Amazon](500310) 无效操作:尚不支持此类IN/NOT IN查询;
Redshift 存储过程 - [Amazon](500310) 无效操作:“$1”处或附近的语法错误;
SQL 错误 [500310] [42703]: [Amazon](500310) 无效操作:events_20180626_temp 中不存在列“engagement_time_msec”;