postgresql 函数不处理varchar记录

nhaq1z21  于 2023-03-29  发布在  PostgreSQL
关注(0)|答案(1)|浏览(80)

我有一个函数,理论上,当输入是城市名称时,它会给予国家名称:

CREATE OR REPLACE FUNCTION public.country_by_city(city varchar, OUT Country varchar)  
RETURNS varchar  
LANGUAGE SQL AS 
$function$   
    SELECT c.country     
    FROM country c   
    JOIN city c2 ON c2.country_id = c.country_id     
    WHERE c2.city = $1   
$function$ 
;

如果我将www.example.com更改c2.city为c2.city_id,但当我试图调用其中包含varchar列的函数时,它可以工作,例如:

SELECT public.country_by_city(Abha);

我得到这个错误:
SQL错误[42703]:您访问的页面不存在!
我尝试使用UPPER()INITCAP(),但没有帮助。值得一提的是,city表中的城市名称记录的首字母都大写。

qyuhtwio

qyuhtwio1#

您需要使用简单的引号调用此参数,例如:

SELECT public.country_by_city('Abha');

相关问题