gpt4 book ai didi

postgresql - 当字符串中有 % 时,如何在 PostgreSQL 中使用格式函数?

转载 作者:行者123 更新时间:2023-11-29 12:43:24 24 4
gpt4 key购买 nike

我有一个函数,如果参数不为 null 或为空,则将多个参数合并到一个字符串中。在特定参数上,我将 % 字符用于 LIKE 条件。我的问题是格式函数试图对其执行转换,就像它是一个参数一样。我怎样才能避免这种情况?

我对参数和多个 LIKE 进行了 10 多次测试。在下面的示例中,第二个 FORMAT 函数尝试将 % 转换为 TEST%

_nom_personne_like := 'TEST%';
_type_activite_personne := 'SOMETHING';
IF _nom_personne_like != '' THEN
_query := _query || ' AND personne_planning.nom_personne LIKE %L ';
_query := FORMAT(_query,_nom_personne_like);
END IF;
IF _type_activite_personne != '' THEN
_query := _query || ' AND personne_planning.type_activite = %L ';
_query := FORMAT(_query,_type_activite_personne);
END IF;`

服务器返回的消息是:无法识别转换类型说明符 « ' »我已经尝试将 % 加倍,但没有用。

最佳答案

由于可读性更好,我更喜欢 format() 而不是字符串连接。我遵循不使用变量作为函数的第一个参数的规则。您的代码可能如下所示:

_nom_personne_like := 'TEST%';
_type_activite_personne := 'SOMETHING';
IF _nom_personne_like != '' THEN
_query :=
format(
'%s AND personne_planning.nom_personne LIKE %L ',
_query,
_nom_personne_like);
END IF;
IF _type_activite_personne != '' THEN
_query :=
format(
'%s AND personne_planning.type_activite = %L ',
_query,
_type_activite_personne);
END IF;`

关于postgresql - 当字符串中有 % 时,如何在 PostgreSQL 中使用格式函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37840263/

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