PostgreSQL函数参数问题(转换MySQL存储过程)

时间:2011-01-05 00:02:31

标签: sql postgresql stored-procedures plpgsql

我正在将一些简单的MySQL存储过程转换为PostgreSQL函数,出于某种原因,当我执行以下函数时,它会在执行时抛出错误。

我使用以下代码创建了该函数:

CREATE FUNCTION cc.fs_ivr_updatecalltransfer(_ParentContactID
int[11], _CalledID varchar[32])
RETURNS int AS $$
DECLARE 
pcID int;   
BEGIN
if _ParentContactID<>0 then 
update cc.tblcontacts set cc.tblcontacts.transferdest =
_CalledID where cc.tblcontacts.contactid =
_ParentContactID;
end if;
RETURN _ParentContactID;
END;
$$ LANGUAGE plpgsql;

我像这样手动执行:

SELECT cc.fs_ivr_updatecalltransfer(3,"test")

它抛出了这个错误:

SQL error:

ERROR:  column "test" does not exist
LINE 1: SELECT cc.fs_ivr_updatecalltransfer(3,"test")
In statement: SELECT  cc.fs_ivr_updatecalltransfer(3,"test")

任何建议?

1 个答案:

答案 0 :(得分:8)

使用单引号引用字符串,而不是双引号。 'test'表示字符串“test”,而"test"表示标识符“test”,postgresql尝试将其解析为列,与在MySQL中使用反引号相同。