0

我正在尝试使用 AWS 提供的说明(在此处找到)在 Aurora Serverless Postgres 10.7 实例上启用 PostGIS 扩展,并通过 RDS 控制台中的查询编辑器执行这些步骤。使用这些相同的指令,我能够在一个单独的常规 Aurora RDS Postgres 实例上成功执行所有命令。

在“第 4 步:将对象的所有权转移到 rds_superuser 角色”中,我收到此错误:

在此处输入图像描述

如果您尝试使用以下命令从 AWS cli 执行命令,这也会失败:

aws rds-data execute-statement --resource-arn "<<RESOURCE_ARN>>" \
--database "postgres" --secret-arn "<<SECRET_ARN>>" \
--sql "CREATE FUNCTION exec(text) returns text language plpgsql volatile AS $f$ BEGIN EXECUTE $1; RETURN $1; END; $f$;"

如何通过 RDS 查询编辑器或 AWS cli 执行这些功能?

4

1 回答 1

1

RDS 查询编辑器和 AWS cli 都需要对“$”字符进行转义。只需使用 '\$' 转义 '$' 的所有实例就可以了。

aws rds-data execute-statement --resource-arn "<<RESOURCE_ARN>>" \
--database "postgres" --secret-arn "<<SECRET_ARN>>" \
--sql "CREATE FUNCTION exec(text) returns text language plpgsql volatile AS \$f\$ BEGIN EXECUTE \$1; RETURN \$1; END; \$f\$;"
于 2019-12-15T19:27:11.003 回答