我有一个非常简单的函数,它接受_posttypeid
和_url
作为参数:
CREATE FUNCTION rewrite(_postid integer DEFAULT NULL::integer,
_url character varying DEFAULT NULL::character varying)
RETURNS TABLE
(
DestinationURL varchar,
)
LANGUAGE plpgsql
AS
$function$
BEGIN
RETURN QUERY
SELECT
NULL AS PostTypeID,
_url AS DestinationURL,
FROM reference.destinations dest1
WHERE length(TRIM(dest1.DestinationURL)) > 0
AND _url LIKE '%' + TRIM(dest1.DestinationURL)) + '%'
ORDER BY length(dest1.DestinationURL)) DESC
LIMIT 1;
END;
$function$
如果我运行,select * from public.rewrite(_url := 'wikipedia.org')
则会收到此错误:
[42883] 错误:运算符不存在:未知 + 文本
提示:没有运算符匹配给定的名称和参数类型。您可能需要添加显式类型转换。
我显然是在传递文本作为_url
参数的值。我不明白错误的含义或如何修复它。