gpt4 book ai didi

postgresql - 仅对支持类型的列执行 LIKE 操作

转载 作者:行者123 更新时间:2023-11-29 13:26:27 25 4
gpt4 key购买 nike

[作业]

我编写了一个 plpgsql 函数,该函数将表名作为该表中每一列的输入,运行一些涉及 LIKE 运算符的查询。

对于包含类型为 integer 的列的表,我得到以下错误:

错误:运算符不存在:整数 ~~ 未知

这是有道理的,因为 LIKE 对整数类型没有意义。

我可以检查以确保每列的类型不是 integer, date, ... 但是硬编码支持/不支持 的数据类型似乎很老套LIKE 操作,即不是“文本”。此外,数据库中使用了许多自定义数据类型来表示某种字符串。

我想知道解决这个问题的好方法是什么。有没有办法检查某种类型的特定列是否可以支持 LIKE 查询?

最佳答案

不确定是否可以检查类型是否支持 LIKE 运算符,但您始终可以运行查询并在错误发生时捕获错误。

在这种情况下,LIKE 运算符会抛出一个 undefined_function 错误。您可以在异常 block 中捕获此错误并改为执行其他操作。请参阅此示例函数:

CREATE or replace FUNCTION test() RETURNS void AS
$BODY$
BEGIN
BEGIN -- begin of the exception block
PERFORM 1 LIKE '10'; -- <--this code throws a exception
EXCEPTION
WHEN undefined_function THEN
RAISE WARNING '%', 'could not execute query!';
END; -- end of the exception block
END;
$BODY$
LANGUAGE plpgsql;

有关更多信息,请参阅 documentationlist all error codes

关于postgresql - 仅对支持类型的列执行 LIKE 操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33072768/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com