什么是版本9.6中的to_regclass参数数据类型?

时间:2017-10-07 15:09:07

标签: postgresql postgresql-9.5 postgresql-9.6

我将此作品用于版本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()函数的参数数据类型是什么?

1 个答案:

答案 0 :(得分:0)

在Postgres 9.6中,to_regclass()的论点是text(在早期版本中是cstring)。

来自the documentation:

  

使to_reg *()函数接受类型文本而不是cstring(Petr Korobeinikov)

     

这避免了在大多数情况下编写显式强制转换的必要性,其中参数不是简单的文字常量。

对regclass的文本表达式的简单转换应该适用于两个版本:

SELECT ('some'||'table')::regclass into v;