日期:2014-05-16  浏览次数:20768 次

序列应用问题
有这样一个关于生成卡号的需求:第一位为8或者9,从8开始,紧接着三位是随机数,然后是一个8位的序列,然后是‘88’,当序列取到最大值之后第一位改为9。
现在写的是:
select SEQ_CARD_NO.NEXTVAL into seq_num from dual;
card_no := '8' || substr(temp_policy_no,1,3) || seq_num || '88';
怎么实现当序列最大后第一位去9,序列我用的是循环序列。

------解决方案--------------------
序列本身好象实现不了。
只能通过Function或者Procedure来判断实现了