Не могу разобраться...прошу помощи

//Написал функцию, sqnc_nomenclature - последовательность
CREATE OR REPLACE FUNCTION directories.gen_nomcode()
RETURNS text AS
$BODY$BEGIN
RETURN to_char(nextval('sqnc_nomenclature'), 'FM099999999');
END;$BODY$
LANGUAGE 'plpgsql' VOLATILE
COST 100;
ALTER FUNCTION directories.gen_nomcode() OWNER TO postgres;

запускаю на выполнение...
select directories.gen_nomcode();

но не срабатывает...ругается:
ERROR: отноС?ение "sqnc_nomenclature" РЅРµ существует
КОНТЕКСТ: SQL-команда: "SELECT to_char(nextval('sqnc_nomenclature'), 'FM099999999')"
PL/pgSQL function "gen_nomcode" line 2 at RETURN

********** Ошибка **********

ERROR: отношение "sqnc_nomenclature" не существует
SQL state: 42P01
Контекст:SQL-команда: "SELECT to_char(nextval('sqnc_nomenclature'), 'FM099999999')"
PL/pgSQL function "gen_nomcode" line 2 at RETURN

не видет последовательность? а почему? разве последовательности не видны из функций? или я на выполнение не так запускаю?...я новичек...расскажите...дайте ума!

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Ну во-первых

Ну во-первых такую функцию можно написать и в языке SQL, а во-вторых последовательность наверное тоже находится в схеме directories...
итого имеем:

CREATE OR REPLACE FUNCTION directories.gen_nomcode() RETURNS text AS
$BODY$
SELECT to_char(NEXTVAL('directories.sqnc_nomenclature'), 'FM099999999');
$BODY$
LANGUAGE 'sql' VOLATILE
COST 100;

Опции просмотра комментариев

Выберите предпочитаемый вами способ показа комментариев и нажмите "Сохранить настройки" для активации изменений.

Back to top

(С) Виктор Вислобоков, 2008-2023