我正在将一些简单的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")
任何建议?
答案 0 :(得分:8)
使用单引号引用字符串,而不是双引号。 'test'
表示字符串“test”,而"test"
表示标识符“test”,postgresql尝试将其解析为列,与在MySQL中使用反引号相同。