oracle中新建一个触发器实现数字以01 02 03这样的形式自动递增

2025-01-03 14:03:18
推荐回答(1个)
回答1:

使用如下函数实例

select trim(to_char(1,'00')) from dual; --转换后的效果就是:01

你上面的语句可以这样写:

  if :new.code_carrier is null then
    select to_char(nvl(max(to_number(code_carrier)), 0) + 1, '0000')  -- 几位就写几个0
      into :new.code_carrier
      from tb_code_carrier;
  end if;

不过每次都需要 max() 不是很费效率吗?你可以使用序列进行转换