|
su.dbms.sql- SU.DBMS.SQL ------------------------------------------------------------------ From : Andrei N.Sobchuck 2:5020/400 21 Feb 2001 19:20:52 To : "Alexander Bodnar" Subject : Re: Создание функции в PostgreSQL -------------------------------------------------------------------------------- Приветствую, "Alexander Bodnar" <bodnar@malva.com.ua>! > Привет всем. > > Проблема с написанием функции. > Hаписал вод такую функцию. > Функция создает новый объект > и прописывает его в таблице, если его нет. > А затем должна создать последовательность > для данного объекта, но не создает. > Там где создается последовательность стоят > звездочки. > > CREATE FUNCTION CreateObject(varchar(600)) RETURNS int4 AS ' > DECLARE > ObjectName ALIAS FOR $1; > ObjectID int4; > ObjectFound int4; > ObjectSeqName char; > BEGIN > ObjectID := 0; > SELECT INTO ObjectFound count(*) FROM Objects WHERE name=ObjectName; > IF ObjectFound = 0 THEN > SELECT INTO ObjectID nextval(''Objects_Seq''); > INSERT INTO Objects(ID, NAME) VALUES(ObjectID, ObjectName); > ObjectSeqName := ''ObjectLog'' || ObjectID || ''_Seq''; > CREATE SEQUENCE ObjectSeqName start 1 increment 1 maxvalue 2147483647 > minvalue 1 cache 1 CYCLE;" ***************** > END IF; > RETURN ObjectID; > END; > ' LANGUAGE 'plpgsql'; > > При выполнении этой функции выдается ошибка - > ERROR: parser: parse error at or near "$1" > Если убрать строку создания последовательности то все ОК, но > последовательность соответственно не создается. > Если вместо имени последовательности поставить просто > имя, а не переменную, то все ОК, последовательность создается, > но мне нужно для каждого объекта своя последовательность, > а не одна на всех. > Может я не так, что-то записал? > Подскажите пожалуйста. Здаётся мне, что единственное что можна сделать - это переписать функцию на pgtcl. Там можна запрос на лету формируется лёгко. > > --- ifmail v.2.15dev5 * Origin: Fidolook Express 2.000 www.fidolook.da.ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /su.dbms.sql/2969045ef5e18.html, оценка из 5, голосов 10
|