我试图在postgresql中创建一个函数,我收到以下错误:
ERROR: column "A00" does not exist
LINE 1: SELECT * from "UpdateStatus"(91206618515,"A00")
^
********** Error **********
ERROR: column "A00" does not exist
SQL state: 42703
Character: 50
我的功能如下:
CREATE OR REPLACE FUNCTION UpdateStatus(id bigint,status varchar(3))
RETURNS void AS $$
BEGIN
UPDATE tb_test
set
id_status = status
where id_test = id;
END
$$ LANGUAGE plpgsql;
如果我把这样的参数放在" UpdateStatus"(91206618515,' A00') 我收到以下错误:
ERROR: function UpdateStatus(bigint, unknown) does not exist
Runnig / df + updatestatus
公开| updatestatus |无效| cpf bigint,状态字符
公开| updatestatus |无效| cpf bigint,状态字符变化
提前致谢。
答案 0 :(得分:2)
在SQL中,您使用单引号屏蔽字符串,并且必须删除函数名称周围的双引号,因为您使用不区分大小写的名称创建了它:
SELECT * from UpdateStatus(91206618515, 'A00')
答案 1 :(得分:-1)
我打赌你创建了具有类似签名的多个功能。检查您的架构函数并删除重复的函数。
尝试更改功能名称以进行测试。因为你的功能应该有用。
<强> SQL DEMO 强>
CREATE OR REPLACE FUNCTION TestUpdateStatus(id bigint,status varchar(3))
RETURNS varchar AS $$
BEGIN
return status;
END
$$ LANGUAGE plpgsql;
SELECT TestUpdateStatus(1, 'A001')
OUTPUT ,看看即使用CamelCase定义时结果如何显示小写?