函数

时间:2016-12-06 12:56:15

标签: postgresql

我试图在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,状态字符变化

提前致谢。

2 个答案:

答案 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定义时结果如何显示小写?

enter image description here