помогите найти ошибку pls

yyy
Дата: 07.09.2004 13:23:36
добрый день,

не работает простейшая функция:

CREATE OR REPLACE FUNCTION create_obj(name varchar, hashcode int4) RETURNS int4 as'
DECLARE
idTmp OBJECT.ID%TYPE;
BEGIN
insert into OBJECT(NAME, NAME_HASH) values(name, hashcode);
idTmp := currval('SEQ_OBJ');
RETURN idTmp;
END;
'
LANGUAGE 'plpgsql' VOLATILE;


ERROR: syntax error at or near "$1"
помогите найти ошибку pls.

заранее спасибо!
mwolf
Дата: 07.09.2004 15:10:31
CREATE OR REPLACE FUNCTION create_obj(name varchar, hashcode int4) RETURNS int4 as'

А разве имена тут можно писать?
Обычно пишется так

CREATE OR REPLACE FUNCTION create_obj(varchar, int4) RETURNS int4 as'
DECLARE
idTmp OBJECT.ID%TYPE;
BEGIN
insert into OBJECT(NAME, NAME_HASH) values( $1, $2);
idTmp := currval('SEQ_OBJ');
RETURN idTmp;
END;
'
LANGUAGE 'plpgsql' VOLATILE;