tCL-序列的下一个

时间:2018-10-31 09:25:19

标签: nextval

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 aa” 在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”

0 个答案:

没有答案