2011-01-05 5 views
1

Ich konvertiere ein paar einfache MySQL gespeicherte Prozeduren in PostgreSQL-Funktionen und aus irgendeinem Grund, wenn ich die folgende Funktion ausführen, löst es einen Fehler bei der Ausführung.Problem mit PostgreSQL-Funktionsparameter (Konvertieren von MySQL Stored Procedures)

habe ich die Funktion mit dem folgenden Code:

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; 

ich es wie folgt manuell ausführen:

SELECT cc.fs_ivr_updatecalltransfer(3,"test") 

Es diesen Fehler führt:

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") 

Irgendwelche Vorschläge?

Antwort

8

Verwenden Sie einfache Anführungszeichen, um Strings zu zitieren, nicht doppelte Anführungszeichen. 'test' bedeutet die Zeichenkette "test", während "test" die Kennung "test" bedeutet, die postgresql versucht, als Spalte aufzulösen, genauso wie die Verwendung von backquotes in MySQL.

+0

Ich hätte schwören können, dass ich das versucht habe ... das wird mich lehren –

Verwandte Themen