2011-01-05 18 views
1

私はいくつかの簡単なMySQLストアドプロシージャをPostgreSQL関数に変換しています。何らかの理由で次の関数を実行すると、実行時にエラーが発生します。私はこのようにそれを手動で実行しPostgreSQL関数のパラメータの問題(MySQLストアドプロシージャの変換)

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

任意の提案を?

答えて

8

二重引用符ではなく、一重引用符を使用して文字列を引用します。 'test'は文字列 "test"を意味しますが、"test"はpostgresqlが列として解決しようとする識別子 "test"を意味します。これはMySQLでバッククォートを使用する場合と同じです。

+0

私はそれを試して誓ったことができました...それは私に教えるでしょう –

関連する問題