oracle 生成序列号存储过程
来源:互联网 发布:ads软件购买 编辑:程序博客网 时间:2024/06/06 00:27
项目中经常要根据年月日规则生成序列号,简单写了个存储过程可根据需要扩展
一、序列号存储表
-- Create table
create table SYS_GENKEY
(
DATESTR VARCHAR2(50),
MAXCOUNT NUMBER,
TYPE NUMBER
)
-- Add comments to the columns
comment on column SYS_GENKEY.DATESTR
is ' 时间';
comment on column SYS_GENKEY.MAXCOUNT
is '当天最大值';
comment on column SYS_GENKEY.TYPE
is '类型';
二、功能实现存储过程
CREATE OR REPLACE PROCEDURE "P_GEN_KEY"
(
retVal out varchar2, --返回生成序号
intype in varchar2, --序号类型
inCount in varchar2 --序列号补0位数
)
as
nowDateStr varchar2(50);--当前年月日
nowmaxcount number(20); --当天最大序号
IS_EXIST NUMBER; --数据是否存在
begin
--取到当前年月日
select to_char(sysdate,'yyyymmdd') into nowDateStr from dual;
--取到当天最大key
select max(t.maxcount) into nowmaxcount from sys_genkey t where t.datestr = nowDateStr and t.type = intype;
--每天加1
--为空则设置为0
if nowmaxcount is null then
nowmaxcount := 0;
end if;
nowmaxcount := nowmaxcount + 1;
--更新临时表
SELECT COUNT(1) INTO IS_EXIST FROM sys_genkey t where t.datestr = nowDateStr and t.type = intype;
IF (IS_EXIST != 0) THEN
update sys_genkey set MAXCOUNT = nowmaxcount where datestr = nowDateStr and type = intype;
else
insert into sys_genkey (DATESTR,MAXCOUNT,TYPE)values(nowDateStr,nowmaxcount,intype);
end if;
--补0
select nowDateStr||LPAD (nowmaxcount , inCount , '0') key into retVal from dual;
end;
- oracle 生成序列号存储过程
- 序列号生成存储过程
- oracle 存储过程生成xml文件
- oracle存储过程生成xml文件
- 利用oracle存储过程生成树编码
- ORACLE存储过程自动生成编号
- Oracle 生成单据编号存储过程
- 发布Oracle存储过程包c#代码生成工具(CodeRobot)
- java操作Oracle存储过程,以及生成Excel报表
- java调用oracle存储过程动态生成表
- oracle存储过程 根据表名生成hibernate实体
- Oracle 生成流水号 存储过程 订单编号
- 存储过程生成随机数
- 存储过程生成订单号
- 自动生成存储过程
- 自动生成存储过程
- 生成序列号
- 生成序列号
- Lib3DS教程
- socket发送图片
- sizeof用法的一个例子
- GSM Deliver SMS pdu解析介绍
- cyberneko+Dom4j玩转HTML解析
- oracle 生成序列号存储过程
- 利用TextExpander自动为代码生成get和set方法
- java enum 的七种用法
- 全选全部checkbox
- oracle 全局临时表的两个级别区别
- GROUP BY 分组查询前N条记录
- jframe加透明层阻止鼠标动作
- PX Deq: Table Q Close
- makefile 遍历下面的几个路径