使用 psql 接口设置数组

Set array using psql interface

我有一个函数可以将用户从数组添加到数据库,例如

psql -c "SELECT addUsersFromList(array['userA','userB','userC'])"

这很好用,但是我希望能够 运行 将其作为脚本,如下所示:

psql -f add_users.sql -v userlist=array['userA','userB','userC'])

和add_user.sql:

SELECT addUsersFromList(:userlist);

当我执行上面的psql命令时,出现错误:

psql:Scripts/add_users.sql:39: ERROR:  column "userA" does not exist

这似乎是我如何使用 -v 标志的问题。我查看了同一页面上 -v、\set 和变量部分的 postgres documentaion,但找不到分配数组的方法。

尝试将数组写成字符串文字:

psql -f add_users.sql -v "userlist='{userA,userB,userC}'"