我在oracle的create record trigger中使用以下代码来创建序列号。我想要像LM0001一样的序列号。将LM000字符串与number和concat一起使用以生成序列号。我收到错误ora-06502。在我做错的地方需要帮助。我应该在哪里修改代码
DECLARE
VCAN varchar2(40);
L number (10);
BEGIN
SELECT MAX(SL_NO)INTO VCAN FROM LAND_MANAGEMENT;
IF VCAN > 0 THEN
L := VCAN + 1;
:LAND_MANAGEMENT.SL_NO := 'LM000' || L;
ELSE
:LAND_MANAGEMENT.SL_NO := 'LM000' || 1;
END IF;
EXCEPTION
WHEN NO_DATA_FOUND THEN
:LAND_MANAGEMENT.SL_NO := 'LM000'|| 1;
END;发布于 2016-04-09 19:53:14
使用序列解决了问题
创建序列
CREATE SEQUENCE LMANAGEMENT_SEQ
START WITH 21
MAXVALUE 9999999999999999999999999999
MINVALUE 0
NOCYCLE
CACHE 20
NOORDER;when-create-record触发器中的sql查询
select 'LM' || to_char(lmanagement_seq.nextval, '000000') INTO
:land_management.sl_no
from dual;https://stackoverflow.com/questions/36514335
复制相似问题