ORACLE 自动产生流水号方法

合集下载

SQL自动生成年月日加3位流水号代码

SQL自动生成年月日加3位流水号代码

--一种方式就是先从数据表中取编号最大值,然后流水+1create procedure GenerateSeqasbegindeclare @MaxSeq varchar(20)declare @NewSeq varchar(20)declare @seq intselect @MaxSeq=MAX(id) from t1 where SUBSTRING(1,8,id)=convert(varchar(20),getdate(),112) --取表中当日最大编号select @seq=cast(SUBSTRING(@MaxSeq,9,3) as int)+1if @seq>99set @NewSeq=convert(varchar(20),getdate(),112)+CAST(@seq as varchar)if @seq>9 and @seq<=99set @NewSeq=convert(varchar(20),getdate(),112)+'0'+CAST(@seq as varchar)if @seq<=9set @NewSeq=convert(varchar(20),getdate(),112)+'00'+CAST(@seq as varchar)print @NewSeqendgoexec GenerateSeqgo--另一种方式是专门create一张特殊的表保存编号CREATE TABLE [dbo].[GenSeq]([ID] [int] IDENTITY(1,1) NOT NULL,[Code] AS (convert(varchar(20),getdate(),112)+right((1000)+[ID],(3))),--此即为编号列[InDate] [datetime] NULL)goCreate procedure [dbo].[GenerateSeq]asbegindeclare @code varchar(30)insert into GenSeq values (GETDATE());--每次插入的数据都是新的编号,先生成再取出来用即可endgo----3法--先写实现思路,然后再贴上代码--1.建立存储过程,声明输出参数@indentNum,输出订单号--2.一般订单号由两部分组成,日期和后续的订单号,根据需求看日期后面需要跟多少位数字,此文为8位。

oracle中中uuid的生成方法

oracle中中uuid的生成方法

一、概述在Oracle数据库中,UUID(Universally Unique Identifier)是一种用于识别信息实体的128位数字。

它是一种全局唯一的标识符,可以用来标识数据库中的每条记录,并且不会重复。

二、UUID的生成方法在Oracle中,可以通过以下方法来生成UUID:1. 使用SYS_GUID函数SYS_GUID函数是Oracle数据库提供的一种生成全局唯一标识符的方法。

它会返回一个RAW(16)数据类型的全局唯一标识符。

示例:```sqlSELECT SYS_GUID() FROM dual;```2. 使用UUID_GENERATE函数如果使用的是Oracle 12c及以上版本,可以使用UUID_GENERATE函数来生成UUID。

这个函数会返回一个VARCHAR2类型的全局唯一标识符。

示例:```sqlSELECT UUID_GENERATE() FROM dual;```3. 使用UUID()函数在Oracle 18c及以上版本,可以使用UUID()函数来生成UUID。

这个函数会返回一个VARCHAR2类型的全局唯一标识符。

示例:```sqlSELECT UUID() FROM dual;```三、UUID的用途生成的UUID可以应用在很多领域,比如:1. 数据库主键在数据库中,UUID可以作为主键来唯一标识每条记录,避免了主键冲突的问题。

2. 会话标识符在Web开发中,可以将UUID作为会话标识符来确保用户会话的唯一性。

3. 数据同步在分布式系统中,可以使用UUID来标识不同节点上的数据,实现数据的同步和一致性。

四、UUID的特点UUID具有以下几个特点:1. 全局唯一性生成的UUID是全局唯一的,极小概率会发生重复。

2. 无序性UUID是无序的,不同的UUID之间没有大小和顺序之分。

3. 长度固定UUID的长度是固定的,为128位,可以确保存储空间的高效利用。

五、总结通过以上介绍,我们了解了在Oracle数据库中生成UUID的方法以及UUID的用途和特点。

oracle apex 开发报表的技巧

oracle apex 开发报表的技巧

oracle apex 开发报表的技巧Oracle APEX是一款强大的低代码开发工具,可以帮助开发人员快速构建报表。

在开发报表的过程中,有一些技巧可以帮助开发人员更高效地完成工作。

一、使用合适的SQL查询在开发报表时,SQL查询是获取数据的关键。

为了提高查询效率,开发人员可以使用合适的SQL语句。

首先,要确保查询语句是正确的,可以通过在数据库工具中运行查询来验证。

其次,可以使用连接查询来获取更多相关的数据。

此外,还可以使用聚合函数和子查询来计算汇总数据。

二、使用适当的布局和样式报表的布局和样式对用户体验至关重要。

在Oracle APEX中,可以使用报表模板来定义报表的整体样式。

此外,还可以使用CSS来自定义报表的样式。

开发人员可以根据需求选择合适的布局和样式,以提高报表的可读性和美观性。

三、添加过滤器和排序功能为了方便用户查找和分析数据,报表中通常需要添加过滤器和排序功能。

在Oracle APEX中,可以使用Interactive Report组件来实现这些功能。

通过配置过滤器和排序选项,用户可以根据自己的需求对报表数据进行筛选和排序。

四、使用条件格式化条件格式化是一种在报表中根据特定条件对数据进行格式化的功能。

在Oracle APEX中,可以使用条件格式化功能来实现这一点。

开发人员可以根据需要设置条件,例如根据数值大小、日期范围或文本内容等条件来格式化报表数据,从而提供更直观和易于理解的信息。

五、添加交互功能为了增强报表的交互性,开发人员可以添加一些交互功能。

例如,可以添加链接到其他报表或页面的超链接,以方便用户导航和浏览数据。

此外,还可以添加弹出窗口或模态框来显示详细信息或执行其他操作。

这些交互功能可以提高用户体验并使报表更加灵活和易于使用。

六、使用动态SQL语句动态SQL是一种根据运行时条件生成SQL语句的方法。

在Oracle APEX中,可以使用动态SQL来实现报表的动态生成。

开发人员可以根据用户的选择或输入来生成不同的SQL语句,从而动态地生成报表数据。

(财务培训)ORACLEEBSERP财务模块操作和培训手册

(财务培训)ORACLEEBSERP财务模块操作和培训手册

(财务培训)ORACLEEBSER P财务模块操作和培训手册ORACLEERPFINANCE 财务模块用户操作手册创建日期:2010-12-31目录第一章系统应用介绍系统配置和安装系统快捷键和通配符系统快捷键通配符第二章总帐管理帐务管理流程凭证维护凭证录入提交凭证审批增加新的凭证凭证修改凭证引入凭证模板定义经常性凭证生成经常性凭证。

定义成批分摊凭证生成成批分摊凭证:预算定义预算组织定义预算预算数据输入预算与实际差异查询外币启用、公司汇率维护与汇率重估定义新货币启用系统原有币种系统汇率维护汇率重估凭证的审核与过帐审核凭证凭证过帐会计科目维护用户审批权限的设定设置上级主管设置审批权限报表定义与报表运行报表定义汇总模板定义与帐户查询定义汇总模板科目余额查询总帐常用标准报表第三章应收管理应收管理流程应收款流程预收款流程客户管理客户录入与维护客户信息查询合并客户信息应收发票的录入手工输入发票引入事务处理收款收款收款的帐务处理贷项事物处理贷项事务处理贷记已收款且已核销的事务处理查询或修改贷项通知单催款管理查询帐户信息催款信息登记应收帐查询查看事务处理应收过帐应收会计期维护应收报表第四章应付应付管理流程应付款流程预付款流程供应商管理供应商信息维护供应商信息修改供应商合并供应商信息查询应付发票标准发票输入预付款借、贷项通知单输入采购订单匹配发票调整发票付款人工输入支付从发票工作台支付发票应付帐查询应付帐过帐维护应付会计期应付报表第五章固定资产简要流程固定资产的增加快速增加资产新增资产固定资产信息调整固定资产报废固定资产资本化固定资产过帐资产设置资产日历资产类别设置资产报废类型设置维护财产类型资产查询与报表资产查询资产报表第六章现金管理简要流程自动对帐流程现金预测流程银行对帐自动对帐手工对帐上期企业未达帐核对现金预测预测模板的建立预测的建立预测报表第七章ADI桌面集成系统ADI的安装及配置ADI的安装修改文件定义数据库ADI与总帐的集成输入日记帐输入预算定义报表报表输出分析报表ADI与资产的集成创建资产模板输入资产加载数据第一章系统应用介绍本章主要内容:介绍如何登录到Oracle电子商务套件中国特别版系统中、Oracle特别版界面的介绍。

ERP-oracle-ebs-凭证的编号装订和打印

ERP-oracle-ebs-凭证的编号装订和打印

ERP-oracle-ebs-凭证的编号装订和打印凭证的编号装订和打印创建日期: 2007.10.14确认日期:控制编码:当前版本: 1.0凭证编号的业务需求:给记账凭证编号,是为了分清记账凭证处理的先后顺序,便于登记账簿和进行记账凭证与账簿记录的核对防止会计凭证的丢失,并且方便日后查找。

记账凭证编号的方法有多种。

一种是将财会部门内的全部记账凭证作为一类统一编号,编为记字第××号;一种是分别按现金和银行存款收入、现金和银行存款付出以及转账业务三类进行编号,分别编为收字第××号、付字第××号、转字第××号;还有一种是按现金收入、现金付出、银行存款收入、银行存款讨出和转账五类进行编号,分别编为现收字第××号、现付字第××号、银收字第××号、银付字第××号、转字第××号。

当月记账凭证的编号,可以在填写记账凭证的当日填写,也可以在月末或装订凭证时填写。

记账凭证无论是统一编号还是分类编号,均应分月份按自然数字顺序连续编号。

通常,一张记账凭证编一个号,不得跳号、重号。

业务量大的单位,可使用“记账凭证编号单”、按照本单位记账凭证编号的方法,事先在编号单上印满顺序号、编号时用一个销一个,由制证人注销,在装订凭证时将编号单附上,使记账凭证的编号和张数一目了然,方便查考。

复杂的会计事项,需要填制二张或二张以上的记账凭证时,应编写分号,即在原编记账凭证号码后面用分数的形式表示,如第8号记账凭证需要填制二张记账凭证,则第一张编号为8(1/2),第二张编号为8(2/2)。

凭证编号的ORACLE系统实现:Oracle总帐标准功能为按照帐套定义并分配序列号。

由系统实现序列号的定期自动刷新。

总帐编号:方案一:使用系统标准的凭证编号;方案二:开发凭证编号方案一的优缺点分析:, 使用系统标准功能,对总帐凭证进行统一编码,系统标准报表都会支持; , 日记帐录入时即产生凭证编号,编号一但产生将会被占用;如果此凭证被删除,则会出现空号情况,但在系统标准报表中会有反映;如果不希望出现空号,可以通过开发保存日记帐不被删除,来保证凭证号不会出现空号;, 每年需要对不同帐套下,不同的日记帐类别,不同的会计期间进行维护,工作量较大; , 编号序列定义和分配的工作量比较大,建议每个会计年末(在下一年会计期间打开之前)定义下一年度的编号序列,并分配到所使用的凭证类别方案二的优缺点分析:, 进行标准化开发,不能使用系统标准报表;, 通过开发实现只有在日记帐过帐时才产生凭证编号,避免出现空号现象系统操作和设置:定义凭证序列的命名及使用期间类型:系统有default参种编号原则有Automatic(自动)、Manual(手动)、Gapless(跳号)初始值:输入起始号码。

oracle取随机记录的几种方法

oracle取随机记录的几种方法

oracle取随机记录的几种方法一、前言在实际开发中,随机取记录是一个常见的需求。

Oracle数据库提供了多种方法来实现这个目标。

本文将介绍Oracle取随机记录的几种方法,并分别进行详细说明。

二、使用ROWNUM和ORDER BY RAND()1. 使用ROWNUM和ORDER BY RAND()的原理ROWNUM是Oracle数据库中自带的一个伪列,它可以用来对查询结果进行编号。

ORDER BY RAND()是MySQL中随机排序的方式,但在Oracle中并没有原生支持。

因此,我们可以通过使用ROWNUM和ORDER BY RAND()结合起来使用来实现随机取记录的功能。

2. 使用ROWNUM和ORDER BY RAND()的步骤(1)首先,我们需要查询出所有符合条件的记录,并按照RAND()函数进行排序:SELECT * FROM table_name ORDER BY dbms_random.value;(2)然后,在查询结果上应用ROWNUM条件:SELECT * FROM (SELECT * FROM table_name ORDER BY dbms_random.value) WHERE ROWNUM <= num;其中num表示需要取出的记录数。

3. 使用ROWNUM和ORDER BY RAND()需要注意的问题由于使用了子查询,所以效率相对较低。

此外,如果表中存在大量数据,则可能会导致性能问题。

三、使用DBMS_RANDOM包1. 使用DBMS_RANDOM包的原理DBMS_RANDOM包是Oracle数据库提供的一个随机数生成器。

它可以生成伪随机数序列,并且具有高度的随机性。

因此,我们可以使用DBMS_RANDOM包来实现随机取记录的功能。

2. 使用DBMS_RANDOM包的步骤(1)首先,我们需要查询出所有符合条件的记录,并对其进行编号:SELECT ROWID, column1, column2, ... FROM table_name;(2)然后,使用DBMS_RANDOM包生成一个随机数作为查询条件:SELECT ROWID, column1, column2, ... FROM table_name WHERE DBMS_RANDOM.VALUE(0, 1) <= probability;其中probability表示需要取出的记录数与总记录数之间的比例。

oracle 循环造数 技巧

oracle 循环造数 技巧

oracle 循环造数技巧Oracle是一种功能强大的关系型数据库管理系统,它支持使用循环来生成和处理数据。

在本文中,我们将探讨一些Oracle中循环造数的技巧,以帮助您更好地利用这个强大的功能。

在Oracle中,使用循环生成数据的常见方法是使用PL/SQL中的循环结构。

PL/SQL是Oracle提供的一种过程化编程语言,可以与数据库进行交互。

下面我们将介绍一些常用的技巧。

1. 使用FOR循环生成连续数字序列在Oracle中,可以使用FOR循环生成连续的数字序列。

例如,要生成从1到10的数字序列,可以使用以下代码:```sqlBEGINFOR i IN 1..10 LOOPDBMS_OUTPUT.PUT_LINE(i);END LOOP;END;```上述代码中,FOR循环从1到10循环遍历,每次迭代都会将当前的数字打印出来。

2. 使用WHILE循环生成满足条件的数据除了使用FOR循环生成连续的数字序列外,还可以使用WHILE循环生成满足条件的数据。

例如,要生成小于100的偶数序列,可以使用以下代码:```sqlDECLAREi NUMBER := 0;BEGINWHILE i < 100 LOOPi := i + 2;DBMS_OUTPUT.PUT_LINE(i);END LOOP;END;```上述代码中,WHILE循环在i小于100的条件下循环遍历,每次迭代都会将当前的偶数打印出来。

3. 使用循环生成日期序列在Oracle中,可以使用循环生成日期序列。

例如,要生成从2022年1月1日到2022年12月31日的日期序列,可以使用以下代码:```sqlDECLAREstart_date DATE := TO_DATE('2022-01-01', 'YYYY-MM-DD');end_date DATE := TO_DATE('2022-12-31', 'YYYY-MM-DD');current_date DATE := start_date;BEGINWHILE current_date <= end_date LOOPDBMS_OUTPUT.PUT_LINE(current_date);current_date := current_date + 1;END LOOP;END;```上述代码中,使用WHILE循环遍历从开始日期到结束日期的每一天,并将其打印出来。

oracle sequence 语法

oracle sequence 语法

oracle sequence 语法摘要:I.介绍- 简述Oracle Sequence 的概念- 介绍Oracle Sequence 的作用II.Oracle Sequence 的语法- 创建Sequence 的语法- 为Sequence 分配初始值- 设置Sequence 的递增方式- 设置Sequence 的最大值和最小值- 设置Sequence 的缓存大小和循环方式III.Oracle Sequence 的使用- 获取Sequence 的当前值- 获取Sequence 的下一个值- 设置Sequence 的当前值- 删除SequenceIV.Oracle Sequence 的应用场景- 介绍Oracle Sequence 在实际应用中的典型场景正文:I.介绍Oracle Sequence 是Oracle 数据库中的一种特殊对象,它可以生成唯一的数字序列号。

在数据库操作中,很多时候需要生成一个唯一的标识符,例如订单号、流水号等,这时候就可以使用Oracle Sequence 来生成。

使用Sequence 生成的数字序列号具有唯一性和递增性,可以大大简化应用程序的开发。

II.Oracle Sequence 的语法A.创建Sequence 的语法创建Sequence 的语法如下:```CREATE SEQUENCE [序列名][INCREMENT BY][步长][START WITH][初始值][MINVALUE][最小值][MAXVALUE][最大值][CACHE][缓存大小][NOCYCLE][不循环][ORDER][排序方式];```其中,`[序列名]`是Sequence 的名称,`[步长]`是Sequence 每次递增的值,`[初始值]`是Sequence 的初始值,`[最小值]`和`[最大值]`分别定义了Sequence 的生成范围,`[缓存大小]`定义了Sequence 的缓存大小,`[不循环]`表示Sequence 是否循环使用,`[排序方式]`定义了Sequence 的排序方式。

sql如何自动生成流水号

sql如何自动生成流水号

数据库的流水号就相当于一个自增的整数,用来识别唯一的记录用的。

也就是说你每插入一条记录,流水号就增加1.一般是日期+流水号形成一个唯一的id。

1.sql如何自动生成流水号oracle数据库的话可以利用rownum取当前记录的顺序,然后赋值给流水号就可以了2。

sql 表中有一列xh 怎样用语句添加xh 为流水号从1依次递增谢谢先进入企业管理器把列xh删除.添加一列,自动递增:alter table tb add xhint identity(0,1)alter table xh所在表的表名add xhint identity(1,1) not null3项目中往往有一些单据流水号或者流程流水号是希望通过新增一条记录后自动产生一个编号的,比如新增一条流程就自动根据当前日期自动添加该流程的流程流水号,下面介绍两种不同类型流水号通过SQL自动产生的方法。

流水号格式:第一种(数值类型):日期+流水号,比如“201104190001”-->"201104190002";第二种(文本类型):前缀+日期+流水号,比如“WT201104190001”-->"WT201104190002"。

不论哪种情况,流水号的生成原则都是一样的,流水号的产生都需要根据当前日期产生,新增的一条记录的流水号为当前日期下所有记录中流水号最大那条加1得来。

一、数据库中添加一个表:TestNo列名数据类型说明ID uniqueidentifier 主键No bigint 流水号字段,不过是纯数字型的流水号,这个为本例子的第一种情况,流水号可以为纯数字DT datetime 新增一条记录的当前时间,相信每新增一条记录都会记录这次操作的当前时间的。

CharNo varchar(50) 流水号字段,不过是可以有字符的流水号,这个为本例子的第二种情况。

二、SQL代码View Code?--------自动流水号为纯数字的情况,如 201104190005------declare@x int,@y char(8)select @x= COUNT(no) from TestNo where CAST(DT as date)=CAST( GETDATE() as date)if(@x=0)beginselect @y=convert(char(8),getdate(),112)insert TestNo(No,DT) values(@y+'0001',GETDATE())endelseinsert TestNo(No,DT) values((select MAX(No)+1 from TestNo where CAST(DT as date)=CAST(GETD ATE() as date)),GETDATE())select * from TestNo--------自动流水号为字符的情况,如 WT201104190005------declare@x1 int,@y1 char(8)select @x1= COUNT(CharNo) from TestNo where CAST(DT as date)= CAST(GETDATE() as date)if(@x1=0)beginselect @y1=convert(char(8),getdate(),112)insert TestNo(CharNo,DT) values('WT'+@y1+'0001',GETDATE())endelsebegininsert TestNo(CharNo,DT) values('WT'+cast((select MAX(CAST( SUBSTRING(charno,3,12) as bigint))+1 from TestNo where CAST(DT as date)=CAST(GETDATE() as date))a svarchar(50)),GETDATE())endselect * from TestNo--------------------------------------------------------------------------------------------。

ORACLE EBS GL 操作手册_GL总帐模块(图文)

ORACLE EBS GL 操作手册_GL总帐模块(图文)

TENGEN-ERP-GL 培训手册文档编者:胡孝锋创建日期:2007年11月3日确认日期:版本:1.0目录一、登录系统 (4)登录 (4)选择职责 (5)二、手工输入日记帐流程 (6)输入手工日记帐资料 (6)输入日记帐头 (6)输入日记帐行 (7)三、日记帐审批 (10)提交审批 (10)进行审批 (11)四、日记帐过帐 (12)手工过帐 (12)自动过帐........................................................................................................................ 错误!未定义书签。

五、冲销日记帐 (14)日记帐冲销 (14)六、输入经常性日记帐 (15)概览 (15)定义经常性日记帐四步骤: (15)定义经常性日记帐公式 (15)输入框架/标准的经常性日记帐分录行 (16)输入公式经常性日记帐行 (17)创建经常性日记帐 (19)七、公司间事务处理 (20)概览 (20)输入公司间事务处理 (20)冲销已批准的公司间事务处理 (21)删除事务处理 (23)运行公司间转送程序 (23)八、在线查询 (25)帐户查询 (25)九、日记帐导入 (27)十、财务报表的定义和生成 (28)FSG报表 (28)行集 (28)列集 (32)列集布局 (35)运行财务报表 (35)标准报表 (37)运行标准报表请求 (37)监视标准报表请求 (39)查找请求 (39)监视请求 (41)十一、月结关帐 (43)会计期 (43)维护会计期 (43)月结流程 (44)一、登录系统登录输入用户名和密码,然后点击登陆.注意: 对于第一登陆,系统会要求用户更改由系统管理员设置的初始密码。

选择职责选择合适的职责进入总帐模块例如. TENGEN_股份本部_GL_CRP2测试地点+ Oracle模块 + 职责 + 总帐帐簿性质 + 总帐帐簿币种二、手工输入日记帐流程输入手工日记帐资料日记帐批批名 (可选择默认,命名规则:用户名+年(2)+月(2)+日(2),例如, 周建栋 071031)批的期间 (默认为最近新开的日记帐期间)批控制总计和说明 (可选)日记帐输入日记帐名称(可选择默认,命名规则:用户名+年(2)+月(2)+日(2),例如,周建栋 071031)日记帐类别 (默认记帐)日记帐凭证编号 (保存日记帐后自动产生,凭证命名规则: 10位数字,年(2)+月(2)+流水号(4)例如07100001)日记帐币种(默认项为本位币)冲销期间 (可选)日记帐控制合计和说明 (可选)日记帐行科目 (必需)借项行和贷项行 (必需)统计数值和说明 (可选)注意: 说明默认自日记帐头的说明,但是此处可以修改输入日记帐头路径:日记帐 > 输入输入日记帐头的信息1. 打开输入日记帐窗口2. 输入唯一的日记帐名称,单据编号。

oracle sequence的用法

oracle sequence的用法

oracle sequence的用法Oracle Sequence是一种用于生成唯一数值序列的对象,它在Oracle数据库中被广泛应用。

它可以在表中创建一个自动递增的数值列,用于唯一标识每一行数据。

在本文中,我们将对Oracle Sequence的用法进行详细介绍。

使用Oracle Sequence之前,我们需要先创建一个Sequence对象。

可以使用以下语法创建一个Sequence:CREATE SEQUENCE sequence_nameSTART WITH initial_valueINCREMENT BY increment_value[MAXVALUE maximum_value][MINVALUE minimum_value][CYCLE | NOCYCLE];其中,sequence_name为Sequence的名称,initial_value为起始值,increment_value为递增步长。

生成序列号的最简单方法是使用NEXTVAL函数。

例如,要在表中插入一条新记录并使用Sequence作为主键,可以使用以下语法:INSERT INTO table_name (id, column1, column2)VALUES (sequence_name.NEXTVAL, value1, value2);在这个例子中,我们使用了sequence_name.NEXTVAL作为表中id列的值。

除了NEXTVAL函数,我们还可以使用CURRVAL函数来获取当前的Sequence值:SELECT sequence_name.CURRVALFROM dual;CURRVAL函数返回当前的Sequence值,这个值可以在查询语句中使用。

在某些情况下,可能需要重置Sequence的值。

可以使用以下ALTER SEQUENCE语句来实现:ALTER SEQUENCE sequence_name[INCREMENT BY increment_value][RESTART [WITH initial_value]];通过INCREMENT BY子句,我们可以更改递增步长。

Oracle 自动产生流水号-实例版

Oracle 自动产生流水号-实例版

Oracle 自動產生流水號–實例版先前有發過Oracle自動產生流水號方式,因此碰到幾位網友詢問,若是想事前取號能否使用”簡易給號”的方式!!具體思路可以將Table與簡易給號綜合,以下為實際例子:1、Create Document Code Table結構如下:此Table紀錄每種格式最大號,不需要先做格式編號或者單別定義。

所有編號格式皆藉由Function(Get_Document_Number)來定義與取號。

2、建立給號Function:Get_Document_Number(P_DEPARTMENT_CODE,P_FORMAT_CODE,P_CODE_LENGTH):CREATE OR REPLACE FUNCTION GET_DOCUMENT_NUMBER (P_DEPARTMENT_CODE IN VARCHAR2, P_FORMAT_CODE IN VARCHAR2,P_CODE_LENGTH IN VARCHAR2) RETURN VARCHAR2ISV_VALUE VARCHAR2(20);V_VALUE_O VARCHAR2(20);V_DEPAR_LEN NUMBER:=LENGTH(P_DEPARTMENT_CODE);V_FORMAT_LEN NUMBER:=LENGTH(P_FORMAT_CODE);V_ORG_NUM VARCHAR2(10):=LPAD('0',P_CODE_LENGTH-V_FORMAT_LEN-V_DEPAR_LEN,'0');V_COUNT NUMBER;PRAGMA AUTONOMOUS_TRANSACTION;BEGINSELECT P_DEPARTMENT_CODE||(NVL(MAX(SUBSTR(MAX_NUMBER,V_DEPAR_LEN+1,P_CODE_LENGTH)), TO_CHAR(SYSDATE,P_FORMAT_CODE)||V_ORG_NUM)+1)INTO V_VALUEFROM DOCUMENT_CODEWHERE SUBSTR(MAX_NUMBER,V_DEPAR_LEN+1,V_FORMAT_LEN)=TO_CHAR(SYSDATE,P_FORMAT_CODE) AND DEPARTMENT_NO=P_DEPARTMENT_CODE AND FORMAT_CODE=P_FORMAT_CODE ANDCODE_LENGTH=P_CODE_LENGTH;SELECT NVL(MAX(MAX_NUMBER),'NEW')INTO V_VALUE_OFROM DOCUMENT_CODEWHERE SUBSTR(MAX_NUMBER,V_DEPAR_LEN+1,V_FORMAT_LEN)=TO_CHAR(SYSDATE,P_FORMAT_CODE) AND DEPARTMENT_NO=P_DEPARTMENT_CODE AND FORMAT_CODE=P_FORMAT_CODE ANDCODE_LENGTH=P_CODE_LENGTH;IF V_VALUE_O ='NEW'THEN –-當期別異動後則新增一條紀錄以便後續追查各期別最大編號(視自行需求改變) INSERT INTODOCUMENT_CODE(DEPARTMENT_NO,FORMAT_CODE,CODE_LENGTH,MAX_NUMBER,CREATION_DATE,LAST_UPDATE_DATE)VALUES(P_DEPARTMENT_CODE,P_FORMAT_CODE,P_CODE_LENGTH,V_VALUE,SYSDATE,SYSDATE);COMMIT;ELSEUPDATE DOCUMENT_CODE SET MAX_NUMBER=V_VALUE,LAST_UPDATE_DATE=SYSDATEWHERE SUBSTR(MAX_NUMBER,V_DEPAR_LEN+1,V_FORMAT_LEN)=TO_CHAR(SYSDATE,P_FORMAT_CODE) AND DEPARTMENT_NO=P_DEPARTMENT_CODE AND FORMAT_CODE=P_FORMAT_CODE ANDCODE_LENGTH=P_CODE_LENGTH;COMMIT;END IF;RETURN V_VALUE;EXCEPTION WHEN OTHERS THENRETURN'X,取號重複,請重新取號!!';END GET_DOCUMENT_NUMBER;3、新增給號方式:A、事前取號:需小心取號後,若資料未保存可能造成跳號問題,故需自行依照狀況做些卡關機制。

Oracle中添加自动编号的序列

Oracle中添加自动编号的序列

Oracle中添加⾃动编号的序列创建表zuochengcreate table zuocheng(id int ,address char(25), pay int);2. 创建⾃增序列create sequence zc //创建名为zc的序列increment by 1 //⾃增长度为1start with 1 //从1开始计数minvalue 1 //最⼩值为1nomaxvalue //没有最⼤值nocache; //不设置缓存3. 为表zuocheng创建触发器create or replace trigger zuocheng_id //将触发器绑定在 id 这⼀列before inserton zuochengfor each rowwhen(new.id is null)beginselect zc.nextval into:new.id from dual;end;4. 插⼊数据insert into zuocheng (address,pay) values('anh3u1i',345);或者insert into zuocheng values(zc.nextval,'anh3u1i',345);==============================================另外⼀种⾼级⽅法:create table BHL_CLIENTLOG(C_ID NUMBER(9) not null,CLANNO VARCHAR2(50),CLANNAME VARCHAR2(50),DBNO VARCHAR2(50),DBNAME VARCHAR2(50),FILENO VARCHAR2(50),DATETIME VARCHAR2(50),STATUS NUMBER(1),constraint BHL_CLIENTLOG primary key (C_ID));create sequence SEQ_BHL_CLIENTLOGincrement by 1start with 1minvalue 1cache 20maxvalue 999999999;在项⽬数据库表ClientLog.htm.xml中设置<hibernate-mapping><class name="com.bhl.datasync.bo.ClientLog" table="BHL_CLIENTLOG"><id name="cId" type="ng.Integer" column="C_ID" length="9"><generator class="native"><param name="sequence">SEQ_BHL_CLIENTLOG</param></generator></id><property name="clanNo" type="ng.String" column="CLANNO" length="50" /><property name="clanName" type="ng.String" column="CLANNAME" length="50" /> <property name="dbNo" type="ng.String" column="DBNO" length="50"/><property name="dbName" type="ng.String" column="DBNAME" length="50" /><property name="fileNo" type="ng.String" column="FILENO" length="50" /><property name="dateTime" type="ng.String" column="DATETIME" length="50" /> <property name="status" type="ng.Integer" column="STATUS" length="1" /></class></hibernate-mapping>。

oracle EBS_BOM_ 物料清单

oracle EBS_BOM_ 物料清单

Oracle系统管理员基础操作手册文档作者:创建日期: 2017/04/5更新日期: 2017/04/5当前版本: 1、0目录目录 (2)操作手册 (1)作业内容 (1)1、BOM基础设置 (1)1、1 设置BOM参数 (1)1、2 设置部门分类 (1)1、3 设置替代项 (2)1、4 设置成批更改得更改类型 (2)1、5 设置组织日历 (3)1、6 设置班次日历 (4)1、7 定义删除约束 (5)2、BOM管理 (5)2、1 清单维护与修改 (6)2、2 修改与删除 (12)测试流程 ............................................................................................. 错误!未定义书签。

问题与总结 ................................................................................................ 错误!未定义书签。

问题及解决 ......................................................................................... 错误!未定义书签。

1、创建公用清单请求错误 ...................................................................... 错误!未定义书签。

总结 (17)附录 (19)操作手册作业内容1.BOM基础设置2.BOM管理1、BOM基础设置1、1 设置BOM参数路径:物料清单管理职责>设置>参数物料清单最大层次表示在系统内物料清单可以定义得最大层次,一般默认设置为10;无效状态表示装配件在何种状态下就是无效得;编号段决定使用物料键弹性域得哪一个段来创建配置物料编号;编号方法就是指配置后自动生成新得物料得编码规则,包括附加序号(在编号段得基础上增加流水号)、替换为序号(采用用流水号)、替换为订单行号(采用订单号加订单行号进行编码)、自定义(手工定义);创建底层供应,选择否只为顶层得ATO或配置物料创建供应、仅限于自动创建得配置物料为所有层次得配置物料创建供应、自动创建得配置物料与ATO物料为所有层次得配置物料与ATO物料创建供应。

Oracle中生成流水号的方法

Oracle中生成流水号的方法

Oracle中⽣成流⽔号的⽅法思路:通过⼀个流⽔号表,记录当前最⼤的流⽔号,以便下次取⽤。

每次取号时,将流⽔号表更新成⼤的。

涉及的表: 流⽔号表hp_no: 字段类型TYPE_NAME VARCHAR2(100)START_NO VARCHAR2(100)CURRENT_NOVARCHAR2(100)代码:1)通过函数得到最⼤值。

有三个参数, 第⼀个参数是类型,便于得到不同的流⽔号。

第⼆个参数是前缀,⽤于在流⽔号前边放置特别的字符。

第三个参数是⽣成的流⽔号长度。

代码CREATE OR REPLACE FUNCTION Hp_Test_GetNo(P_TYPE_NAME IN VARCHAR2 DEFAULT '', --类型参数1P_START_NO IN VARCHAR2, --前缀参数2P_LENGTH IN NUMBER --得到流⽔号长度参数3)RETURN VARCHAR2 --返回类型ISV_RESULT VARCHAR2 (100) := ''; --结果变量1V_CURRENT_NO VARCHAR2 (100) := ''; --当前值变量2V_NUM NUMBER := 0; --补值变量3V_START_NO VARCHAR2(100); --前缀变量4V_ROWID VARCHAR2 (100); --要更新⾏的RowID 变量4BEGINV_START_NO :=P_START_NO; --参数值赋给变量SELECT COUNT (*)INTO V_NUMFROM HP_NOWHERE TYPE_NAME = P_TYPE_NAME AND START_NO = P_START_NO; --得到类型与前缀相同值的数量,主要⽤于判断是否产⽣过流⽔号--判断是否有资料没有则产⽣初始值插⼊库中IF V_NUM = 0 --没有记录过时THENV_CURRENT_NO := LPAD ('1', P_LENGTH, '0'); --得到P_length长的0001流⽔号V_RESULT := V_CURRENT_NO; --将前缀与流⽔号相连起来INSERT INTO HP_NO(TYPE_NAME, START_NO, CURRENT_NO)VALUES (P_TYPE_NAME, P_START_NO, V_CURRENT_NO); --将新的最⼤值记录下来ELSESELECT ROWID, CURRENT_NO + 1INTO V_ROWID, V_CURRENT_NOFROM HP_NOWHERE TYPE_NAME = P_TYPE_NAME AND START_NO = P_START_NO; --得到最⼤值加1V_CURRENT_NO := LPAD (V_CURRENT_NO, P_LENGTH, '0');UPDATE HP_NOSET CURRENT_NO = V_CURRENT_NOWHERE ROWID = V_ROWID; --更新最⼤值END IF;IF V_START_NO IS NULL OR V_START_NO='' THENV_RESULT := V_CURRENT_NO;ELSEV_RESULT :=V_START_NO || V_CURRENT_NO;END IF;RETURN V_RESULT;END;使⽤存储过程调⽤函数的⽅法:代码--调⽤function存储过程CREATE OR REPLACE PROCEDURE Hp_Pro_GetTestNo(v_FirstLetter in varchar2,v_Result out varchar2)ISv_FirstValue varchar2(30);v_SystDate varchar2(30);BEGINselect to_char(sysdate,'yyyymm') into v_SystDate from dual;v_FirstValue:=(v_FirstLetter || v_SystDate);v_Result:=hp_test_getno('HpTest' ,v_FirstValue,4);END;结果: 调⽤存储过程Hp_Pro_GetTestNo('hp',4); 结果为:hp2016060001其它思考:⼀、新增时⽆须显⽰流⽔号,如得到得到连续流⽔号⽅法: 采⽤流⽔号⼦表,此表⽤于保存没有⽤过的流⽔号。

oracle 日记账批名生成规则

oracle 日记账批名生成规则

oracle 日记账批名生成规则什么是Oracle 日记账批名?在Oracle 数据库中,日记账批名是一种用户定义的标识符,用于标识特定的数据库操作或事务。

它通常用于在数据库日志中记录事务开始和结束的时间戳和相关信息。

每个数据库操作或事务都可以由一个唯一的日记账批名来标识,以便在需要时进行追踪和分析。

生成规则生成Oracle 日记账批名的规则通常是由数据库管理员或开发人员定义的,根据特定的需求和约定。

下面是一些常见的生成规则示例:1. 多态批名:使用不同类型的标识符组成批名。

例如,可以使用时间戳、事务类型和操作类型的组合来生成批名。

这样可以使批名更加具有表达力和唯一性。

示例:[20211201永久删除]2. 基于业务流程的命名:根据业务流程和操作类型来生成批名。

这样可以使批名更加直观,并且能够更好地反映数据库操作的目的和影响。

示例:[订单处理_提交审批]3. 顺序编号:使用一个连续的数字序列作为批名的一部分,以便更好地进行跟踪和排序。

可以将该序列存储在一个单独的表中,并在每次生成新的批名时更新该表。

示例:[批名_001]4. 基于数据库对象的命名:根据数据库对象的名称、类型和操作类型生成批名。

这样可以更好地对数据库操作进行分类和归类。

示例:[表_订单_更新]5. 随机生成:使用随机字符串生成批名,以保证批名的唯一性和安全性。

可以使用随机生成算法或者使用特定的库函数来生成随机字符串。

示例:[随机批名_abc123]使用Oracle 日记账批名的好处使用规范和有意义的日记账批名可以带来以下好处:1. 追踪和分析:通过批名可以追踪和分析特定数据库操作的执行情况和结果。

这对于事务的审计、故障排除和性能优化非常重要。

2. 业务理解:通过批名可以更好地理解数据库操作的目的和意义。

这对于开发人员、管理员和业务用户来说都非常重要,可以帮助他们更好地理解数据库操作的业务背景和需求。

3. 问题排查:如果出现问题或异常情况,通过批名可以更快地找到相关的数据库操作,并进行排查和修复。

ORACLEEBS财务全模块操作手册中文版

ORACLEEBS财务全模块操作手册中文版

ORACLE EBS FINANCE 用户操作手册目录第一章系统应用介绍 .......................................................................................................... 0系统配置和安装 ....................................................... 1系统快捷键和通配符 ................................................... 6系统快捷键........................................................... 6通配符............................................................... 6第二章总帐管理 .................................................................................................................. 7帐务管理流程 ......................................................... 8凭证维护............................................................. 9凭证录入............................................................. 9提交凭证审批....................................................... 11增加新的凭证....................................................... 11凭证修改........................................................... 11凭证引入........................................................... 13凭证模板........................................................... 15定义经常性凭证..................................................... 15生成经常性凭证. .................................................... 17定义成批分摊凭证................................................... 17生成成批分摊凭证:................................................. 18预算............................................................... 20定义预算组织....................................................... 20定义预算........................................................... 21预算与实际差异查询................................................. 23外币启用、公司汇率维护与汇率重估.................................... 24定义新货币......................................................... 24启用系统原有币种................................................... 24系统汇率维护....................................................... 25汇率重估........................................................... 25凭证的审核与过帐 ................................................... 27审核凭证凭证....................................................... 27过帐............................................................... 27会计科目维护 ....................................................... 29用户审批权限的设定 ................................................. 31设置上级主管....................................................... 31设置审批权限....................................................... 31报表定义与报表运行 ................................................. 32报表定义........................................................... 32汇总模板定义与帐户查询 ............................................. 37定义汇总模板....................................................... 37科目余额查询....................................................... 37总帐常用标准报表 ................................................... 39第三章应收管理 .............................................................................................................. 41应收管理流程 ....................................................... 42应收款流程......................................................... 42预收款流程......................................................... 42客户管理........................................................... 43客户录入与维护..................................................... 43应收发票的录入 ..................................................... 53手工输入发票....................................................... 53引入事务处理....................................................... 56收款............................................................... 58收款............................................................... 58收款的帐务处理..................................................... 59贷项事物处理 ....................................................... 61贷项事务处理....................................................... 61贷记已收款且已核销的事务处理....................................... 61查询或修改贷项通知单............................................... 62催款管理........................................................... 63查询帐户信息....................................................... 63催款信息登记....................................................... 63应收帐查询 ......................................................... 65查看事务处理....................................................... 65应收过帐........................................................... 66应收会计期维护 ..................................................... 67应收报表........................................................... 68第四章应付 ...................................................................................................................... 69应付管理流程 ....................................................... 70应付款流程......................................................... 70预付款流程......................................................... 70供应商管理 ......................................................... 71供应商信息维护..................................................... 71供应商信息查询..................................................... 73应付发票........................................................... 74标准发票输入....................................................... 74预付款............................................................. 76借、贷项通知单..................................................... 80输入采购订单匹配发票............................................... 81调整发票........................................................... 83付款............................................................... 84人工输入支付....................................................... 84从发票工作台支付发票............................................... 84应付帐查询 ......................................................... 86应付帐过帐 ......................................................... 87维护应付会计期 ..................................................... 89应付报表........................................................... 90第五章固定资产 .............................................................................................................. 91简要流程........................................................... 92固定资产的增加 ..................................................... 93快速增加资产....................................................... 93新增资产........................................................... 94固定资产信息调整 ................................................... 96固定资产报废 ....................................................... 99固定资产资本化 ................................................... 101固定资产过帐 ..................................................... 102资产设置......................................................... 103资产类别设置..................................................... 104资产报废类型设置................................................. 104维护财产类型..................................................... 104资产查询与报表 ................................................... 106资产查询......................................................... 106资产报表......................................................... 107第六章现金管理 .......................................................................................................... 108简要流程......................................................... 109自动对帐流程..................................................... 109现金预测流程..................................................... 109银行对帐......................................................... 110自动对帐......................................................... 110手工对帐......................................................... 114上期企业未达帐核对............................................... 115现金预测......................................................... 117预测模板的建立................................................... 117预测的建立....................................................... 118预测报表......................................................... 119第七章ADI桌面集成系统 .......................................................................................... 121ADI的安装及配置 .................................................. 122ADI的安装........................................................ 122修改文件......................................................... 124定义数据库....................................................... 124ADI与总帐的集成 .................................................. 126输入日记帐....................................................... 126输入预算......................................................... 128定义报表......................................................... 129报表输出......................................................... 131分析报表......................................................... 133ADI与资产的集成 .................................................. 135创建资产模板..................................................... 135输入资产......................................................... 135加载数据......................................................... 136第一章系统应用介绍本章主要内容:介绍如何登录到Oracle 电子商务套件中国特别版系统中、Oracle 特别版界面的介绍。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

ORACLE 自動產生流水號方法:
我想各位在設計TABLE時,應該都曾想在資料表中,設計一個流水號欄位,以便加快SQL執行效能;亦或者應付不同狀況、類型想做歸類方便查詢使用。

但Oracle流水編號又不向ACCESS和MS-SQL等資料庫有提供自動編號功能。

也因為Oracle沒有自動編號功能,若想編流水號的話…往往都要搭配Trigger來使用。

以下就介紹幾種流水編號方式:
1.Sequence:適合對流水號無特別需求時使用。

Create Sequence Seq_MarsTest
MINVALUE 1
MAXVALUE 999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
參數說明如下:
SequenceObjectName : 循序物件名稱
MinValue : 最小值
MaxValue : 最大值
Increment By : 每次增加
Start With : 從多少開始
Nocache : 不快取
Cycle : 當取至最大值後, 是否循環再由最小值開始
做法→在TRIGGER中新增AFTER INSERT 使用以下SQL擷取編號後塞入TABLE.流水號欄。

SELECT Seq_MarsTest.nextval FROM dual;
2.TABLE:若對流水號有特殊需求時使用。

就是另開一個TABLE去紀錄和設定目前流水編號。

新增TABLE格式舉例如下(依需求去設計):
做法→一樣在TRIGGER中新增AFTER INSERT依照狀況抓取單別和目前已使用的號碼+1判斷碼長補到TABLE.流水號欄位。

3.簡易編號:
此方法也是我最愛使用的方法。

不僅可做特殊需求編號又不用另外建立Sequence 或Table做法又簡單只要使用Query 查詢即可達成。

以下範例說明:
SELECT
'G'||(NVL(MAX(SUBSTR(ACK_ID,2,14)),TO_CHAR(SYSDATE,'YYYYMMDD')||'0000 00')+1) FROM TABLE_TEMPLATE
WHERE SUBSTR(ACK_ID,2,8)=TO_CHAR(SYSDATE,'YYYYMMDD')
Output :
上述方法的編碼模式為”G”為單別後8碼為年月日再加上8碼的流水號。

以當日查詢若有查到最大號時就用最大號碼+1編碼,若無則從(系統年月日)+流水號開頭(上例為00000000)+1,當然也可從10號或1000號開始或者加2加3跳號方式編碼。

寫到這我想各位一定會提出一個疑問在Trigger中是無法對本身Table 進行Query的。

沒錯,不可以!!但有解套方式:就是使用PRAGMA AUTONOMOUS_TRANSACTION (不會使用的人就自行搜尋吧!!在這不做冗長的解說)即可在Trigger中搜尋自身Table來達成。

以上我都只是稍做介紹舉例。

若有做法上不清楚或不明白的地方…煩請自行去搜尋資料,當完成後你的成就感會比平常多兩倍的!!!。

相关文档
最新文档