POSTGRESQL 9.2.24.- pltcl
Казалось бы, довольно прямолинейный поступок. Я пытаюсь сделать эквивалент (в plpgsql)
v_skill_integer = nextval (v_seq_name);
в результате ....
ОШИБКА: неверное имя команды "db_nextval"
КОНТЕКСТ: неверное имя команды "db_nextval"
во время выполнения
"db_nextval $ seq_name"
(процедура "__PLTcl_proc_1645839" строка 8)
вызывается изнутри
"__PLTcl_proc_1645839 аа"
в PL / Tcl функция "skm__tcl_set_skill_id"
DROP FUNCTION IF EXISTS skm__tcl_set_skill_Id(CHAR(03));
CREATE OR REPLACE FUNCTION skm__tcl_set_skill_Id(CHAR(03))
RETURNS CHAR(08) AS $BODY$
set skill_prefix [string tolower $1]
append seq_name "skm_" $skill_prefix
set v_length [string length $skill_prefix]
set skill_integer [db_nextval $seq_name]
return $seq_name$length
$BODY$ LANGUAGE pltcl;
select skm__tcl_set_skill_Id('aa');
Будет ли это потому, что последовательность еще не создана, и если да, то как мне ее поймать? Если не то, то ??
Я думаю, что это экологическая вещь, потому что когда я использую пут, я получаю ошибку
ОШИБКА: не удается найти канал с именем "stdout"
КОНТЕКСТ: не могу найти канал с именем "stdout"
во время выполнения
"ставит $ seq_name"