栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

PostgreSQL错误:函数to_tsvector(字符变化,未知)不存在

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

PostgreSQL错误:函数to_tsvector(字符变化,未知)不存在

使用显式类型转换:

SELECt language, to_tsvector(language **::regconfig** , 'hello world') FROM languages;

或更改列

languages.language
输入
regconfig

为什么?

Postgres允许函数重载。函数签名是由它们的(可选的,由 模式 限定的) 名称 加上 输入参数类型
(的列表)定义的。

to_tsvector()
期望类型的2参数形式
regconfig

作为第一个参数:

SELECt proname, pg_get_function_arguments(oid)FROM   pg_catalog.pg_procWHERe  proname = 'to_tsvector'   proname   | pg_get_function_arguments-------------+--------------------------- to_tsvector | text to_tsvector | regconfig, text  -- you are here

如果没有现有函数 完全
匹配,则“函数类型解析”规则将确定最佳匹配-如果有的话。这是成功的

to_tsvector('english', 'helloworld')
,因为
'english'
它是 无类型的字符串文字 。但由于 键入
varchar
了参数而失败,因为没有从到的已注册
隐式
强制类型
varchar
转换
regconfig
。手册:

丢弃输入类型不匹配且无法转换(使用 隐式 转换)匹配的候选函数。为此目的, 未知的文字 被假定可以转换为任何东西。

大胆强调我的。
已注册的演员表

regconfig

SELECt castsource::regtype, casttarget::regtype, castcontextFROM   pg_catalog.pg_castWHERe  casttarget = 'regconfig'::regtype; castsource | casttarget | castcontext------------+------------+------------- oid        | regconfig  | i bigint     | regconfig  | i smallint   | regconfig  | i integer    | regconfig  | i

解释

castcontext

castcontext char

指示可以在其中调用转换的上下文。
e
仅表示为显式转换(使用
CAST
::
语法)。
a

意味着隐式分配给目标列以及显式分配。
i
和其他情况一样,在表达式中隐含地表示。

在CREATE CAST一章中了解有关三种不同 类型分配的
更多信息。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/517506.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号