Проблема с параметрами функции PostgreSQL (преобразование хранимых процедур MySQL) - PullRequest
1 голос
/ 05 января 2011

Я конвертирую несколько простых хранимых процедур 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 Ответ

8 голосов
/ 05 января 2011

Используйте одинарные кавычки для цитирования строк, а не двойные кавычки. 'test' означает строку «test», тогда как "test" означает идентификатор «test», который postgresql пытается разрешить в виде столбца, аналогично использованию обратных кавычек в MySQL.

...