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

jexiocij  于 5个月前  发布在  PostgreSQL
关注(0)|答案(2)|浏览(62)

我尝试使用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


(由于错误消息是法语,因此从法语翻译的模糊不清)
关于这方面的文献很少,因此我被卡住了,我想不出另一种方法来做这件事。

  • Edit* -确切的错误文本(在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.

bgtovc5b

bgtovc5b1#

这将工作:

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

字符串

izkcnapc

izkcnapc2#

下面是同样的错误:
错误:函数set_config(unknown,integer,boolean)不存在
2没有''时,使用set_config()设置custom option,如下所示:

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

字符串
所以,我设置2''如下所示,然后我可以设置自定义选项没有错误:

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

相关问题