我将此作品用于版本9.5
中存在的检查表,并且工作正常:
do $$
declare v text;
begin
SELECT to_regclass(('some'||'table')::cstring) into v;
raise notice '%', v;
end;
$$ language plpgsql
现在我使用版本为9.6
的另一个(远程)数据库,此代码产生错误:
函数to_regclass(cstring)不存在
那么,postgres 9.6中to_regclass()
函数的参数数据类型是什么?
答案 0 :(得分:0)
在Postgres 9.6中,to_regclass()
的论点是text
(在早期版本中是cstring
)。
使to_reg *()函数接受类型文本而不是cstring(Petr Korobeinikov)
这避免了在大多数情况下编写显式强制转换的必要性,其中参数不是简单的文字常量。
对regclass的文本表达式的简单转换应该适用于两个版本:
SELECT ('some'||'table')::regclass into v;