PostgreSQL:函数 set_config(unknown, bigint, boolean) 不存在

问题描述 投票:0回答:2

我正在尝试使用 plpgpsq 的 current_setting() 和 set_config() 函数来更改我添加到 postgresql.conf 文件中的自定义设置的值。

这是我添加到 postgresql.conf 文件末尾的内容:

IntegrityPackage.NestLevel = 0

重新启动 PostgreSQL 服务后,当我想查看设置的值时,我得到以下结果:

select current_setting('IntegrityPackage.NestLevel');

current_setting |
----------------|
0               |

但是,当我尝试编辑该值时,收到一条错误消息:

select set_config('IntegrityPackage.NestLevel', 0, false);

ERROR: function set_config(unknown, bigint, boolean) doesn't exist.
Hint: No function corresponds to given name and argument types
You must add explicit type conversions

(由于错误消息是法语,因此从法语模糊翻译)

关于此的文档很少,因此我陷入困境,我想不出另一种方法来做到这一点。

编辑 - 确切的错误文本(在 psql 9.2 / postgresql 10.0 中)是:

ERROR:  function set_config(unknown, integer, boolean) does not exist
LINE 1: select set_config('my.foo',obj_id::int ,false) from objects ...
               ^
HINT:  No function matches the given name and argument types. You might need to add explicit type casts.
postgresql configuration-files
2个回答
4
投票

这会起作用:

select set_config('IntegrityPackage.NestLevel', '0', false);

0
投票

我在下面遇到了同样的错误:

错误:函数 set_config(未知,整数,布尔)不存在

2
没有
''
时,可以使用set_config()设置自定义选项,如下所示:

                         -- ↓
SELECT set_config('my.num', 2, false);

所以,我将

2
设置为
''
,如下所示,然后我可以设置自定义选项而不会出错:

                         -- ↓ ↓
SELECT set_config('my.num', '2', false);
© www.soinside.com 2019 - 2024. All rights reserved.