我正在尝试使用AWS(found here)提供的说明在Aurora无服务器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执行这些功能?
答案 0 :(得分:0)
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\$;"