Oracle数据库自定义函数---根据公司流程自动生成流程编号


--假如我自定义的编号为 BAIQRSH07+日期+001
--例如BAIQRSH072014001、 BAIQRSH072014002、
--每年都是从001开始 如 BAIQRSH072015001

CREATE OR REPLACE FUNCTION GetFlowNumber
RETURN VARCHAR2
AS
serialNumber NUMBER(16);--序列号 自定义编号最后3位数
flowNumber VARCHAR2(50);--返回流程编号 BAIQRSH07+日期+XXX
flowNum VARCHAR2(50);--自定义编号 BAIQRSH07+日期
BEGIN
flowNum := 'BAIQRSH07'|| TO_CHAR(SYSDATE, 'YYYY');
--模糊查找数据库当前最大的编号 即最后面3位数 然后查询出来的 赋值给serialNumber
--max 是Oracle的一个函数,这里用于获取 该表中最大的编号
--substr 是Oracle的一个函数,这里用于截取 自定义编号,就是获取 BAIQRSH07+日期 后面的数
--nvl 是Oracle的一个函数,这里用于判断 为空时,赋值为0
--to_number 是Oracle的一个函数,把字符改成数字
--因为字符比较时 999会大于1000 所以先转为数字,再比较大小

select nvl(max(to_number(substr(flow_num,14))),0) into serialNumber from FlowTable t where t.flow_num like flowNum||'%';
--这里就是用于累加的
serialNumber :=serialNumber+1;
if serialNumber<100 then--如果小于100
--LPAD是是Oracle的一个函数,lpad(字段名,填充长度,填充的字符) 当序列号 不足3位时 自动填充0,例如 你序列号位1,不满足3位,怎会为001
flowNumber := flowNum || LPAD(serialNumber, 3, '0');--左边添加自动补0,直到达到3位数
else
flowNumber := flowNum || serialNumber;
end if;
RETURN flowNumber;
END;



后台获取自定义编号
根据下面这条 SQL 语句就可以获取到自动生成的编号了。 后台自己写


String sql = "SELECT GetFlowNumber() flowNumber FROM DUAL";

Oracle Form自动生成序号 讲解如何在Form(父子结构)中自动生成行号,并且行号可以修改,修改后的行号依然会按照最大的行号网上递增,类似采购订单Form的行号逻辑 立即下载

相关推荐

Oralce 自定义数据库同步脚本

此脚本利用JOB定时把指定表中的数据生成SQL(利用模版去生成),模版不需要自己去写,只要做好相关配置就行,至于怎么配置,表结构中都有描述,更新方式有:1.先删除满足条件的数据再插入;2.整表删除再插入)。生成SQL之后利用后台服务去获取生成的SQL生成bat文件同步到指定的实例中去。这个方法适用于只两台数据库服务器不能直接通讯的情况下, 献丑了。 注意:需要一个后台服务去支持,我不想浪费大家时间,希望对有需要的人有帮助.

关于oracle生成项目编号的函数

   今天要说的一个是oracle的一个函数,项目需求ID必须是按照TYPE+YYYYMMDD+001这样的格式来生成,想了一下,因为很多的的ID都是需要这样生成,其不同的地方只在于type不同,以及所选取的表,以及表列不一样。因此,想用一个函数来返回值,以其简单化。   问题的难点在001如何增加到002一直到999,起初想用一个sequences来实现,但是由于需要递增,如果表中已经有00

hotyxm的专栏 720

用户自定义工作流后台java实现代码

用户自定义工作流后台java代码实现 内部包含jsp代码和主要的工作流流转java方法实现,希望给各位有所帮助……

Oracle自动生成编号的函数

第一次用oracle 函数,跟sql有太多的不同,涉及的知识点还是很多  函数创建、类型转换、if else的用法、必须要传参数、字符型相加的特殊写法、substr函数的用法等等   CREATE or replace  FUNCTION fun_DelegateNo(currentdate in date) RETURN VARCHAR2 IS v_result VARCHAR2(50);

Silence20120807的专栏 2616

【实战解析】RTL8306MB交换芯片驱动开发中的RMII接口调试陷阱

本文深入剖析了RTL8306MB交换芯片驱动开发中RMII接口的典型调试陷阱。通过一个工业网关项目的实战案例,揭示了因硬件原理图设计疏忽导致TX_EN与CRS_DV信号线错接,从而引发网络“哑火”的根本原因。文章详细展示了使用示波器从时钟、数据到控制信号的系统性排查方法,并总结了关键的设计警示与自查清单,为嵌入式网络开发中的软硬件协同调试提供了宝贵经验。

qqq44的博客 1029

避坑指南:时间序列互相关分析(CCF)常见的5个误用场景

本文详细解析了时间序列互相关分析(CCF)中常见的5个误用场景,包括忽视平稳性检验、混淆同期相关与因果关联、误读滞后阶数、忽略自相关干扰以及样本量不足等问题。通过实际案例和技术建议,帮助数据分析师避免这些陷阱,确保CCF分析的准确性和可靠性。

weixin_29064009的博客 429

oracle按序号排序,Oracle排序以及序号的显示

Oracle排序以及序号的显示在一般Select语句中我们通过Orderby ...Asc/Desc来进行排序。但是这种排序方式在输出时,不包含排序后的序号信息。现在介绍一下Oracle中可以用于排序输出的方法。1. RANK ( ) OVER ( [query_partition_clause] order_by_clause )RANK ( ) OVER ( [query_partition...

weixin_42369343的博客 4198

家用电器维修必备:手把手教你用双向可控硅改造单相电机调速(附电路图)

本文提供了一份详细的家用电器维修指南,手把手教你如何利用双向可控硅为核心元件,为单相交流电机(如风扇、排气扇)实现平滑的无级调速改造。内容涵盖核心原理、安全须知、元件选型(如BT136、DB3)、电路图解析、分步搭建教程以及常见故障排查方法,旨在帮助维修爱好者和DIY用户安全、成功地完成这一实用且富有成就感的项目。

read5的博客 838

Oracle数据库PL/SQL程序

以下都是基于Oracle数据库下默认帐户Scott 根据scott用户下的公司部门信息表,进行如下操作: (1)使用游标一次上涨所有员工工资,工资上涨规则如下: 10部门上涨10%; 20部门上涨20%; 30部门上涨30% 每个员工上限5100元,上涨到5100之后就不上涨。 DECLARE CURSOR cur IS SELECT * FROM emp; erow emp%ro...

Codes Catcher的博客 286

网络工程师的Python入门实战:手把手教你写交换机配置备份脚本

本文详细介绍了如何利用Python为网络工程师开发一个高效的交换机配置备份脚本,涵盖环境搭建、设备连接方案、智能设备发现、多因素认证、异常处理、配置差异对比等关键步骤。通过实战案例展示如何将备份时间从4小时缩短至15分钟,显著提升运维效率,特别适用于华为交换机等设备的配置导出与备份需求。

weixin_30291791的博客 306

华为2288H-V5服务器做raid的详细步骤

操作步骤 服务器启动界面 按del键进入设置输入密码,2288H-v5默认密码是Admin@9000 移动光标选择device manager 驱动管理选择configurationutility 配置管理 选择main menu 主菜单 选择第一个 configuration management 配置管理 选择create virtual driver 创建虚拟驱动选择select RAID level 选择RAID等级选择level-5 选择select drivers 选择驱......

weixin_46041124的博客 1万+

Oracle数据库

MySQL AB开源,2008被SUN公司收购,然后和java打包2009年卖给了Oracle!产品免费,服务收费!以左表为基准,去匹配右表数据,如果匹配成功,则全部显示,匹配不成功右边部分为。以右表为基准,去匹配左表数据,如果匹配成功,则全部显示,匹配不成功左边部分为。d.不能与其他数据库中的对象重名(表,视图,索引,触发器,存储过程…分组查询时,不在聚合函数中的列,必须在group by中!多张表通过相同字段连接,匹配成功则显示,否则不显示。交叉连接(笛卡尔积),所有情况的组合,不推荐使用。

bug郭的博客 723

逆变器技术解析:DDSRF双解耦在正负序分离中的关键作用

本文深入解析了DDSRF双解耦技术在逆变器正负序分离中的关键作用。通过建立正反旋转坐标系并利用交叉反馈解耦网络,DDSRF能快速、精准地分离电网电压中的正负序分量,从而显著提升锁相环在电网不平衡条件下的精度与系统稳定性,是现代高性能并网逆变器的核心算法之一。

m3n5b7v8c9x的博客 413

Oracle数据库学习(七):oracle函数的使用

oracle常见的各种函数的使用与测试

tfghmx的博客 670

Qemu开发ARM篇-5、buildroot制作根文件系统并挂载启动

在上一篇中,我们编译了kernel,并在qemu上进行了运行,但到最后,在挂载根文件系统时候,挂载失败,这是因为我们还没有根文件系统,在本章中,我们将制作根文件系统。rootfs制作方式有很多方式,如busyBoxbuildrootYocto等,在该篇章中,我们使用buildroot来制作根文件系统,主要考虑到busyBox制作完还需要手动首改一些启动配置比较繁琐,而Yocto如果电脑配置不是很好,编译时间过长,比较麻烦。

sinat_33909696的博客 2465

基于YOLO26的实时目标追踪实战:从训练到视频追踪(附完整可视化代码)

核心组合:YOLO26(高精度检测)+ ByteTrack(稳定追踪)是实时目标追踪的最优工业组合,Ultralytics内置集成无需额外开发;训练优化:追踪场景需优先提升检测框精度(增加box损失权重),保证ID稳定性;可视化核心:为每个ID分配唯一颜色、绘制运动轨迹、显示FPS,是落地场景的必备功能;性能调优:轻量化模型+降分辨率+OpenVINO导出,可在边缘设备(如研华工控机)实现实时追踪。这套代码可直接复用到智慧园区、停车场、工业产线等场景,仅需修改park.yaml中的类别和。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 573

.net操作Oracle函数

.net访问Oracle函数,并显示返回值:1 表结构(SysFunction)功能编号    CHAR(8)            功能名称    VARCHAR2(30)            上级功能编号    CHAR(8)            标志    CHAR(1)            select * from infomanager.sysfunction1    1    

马如林的IT博客 2185

IMSL CNL 7.0.0 (x86-64)Crack

IMSL CNL 7.0.0 (x86-64)Crack intel的算法库破解文件,这是C++版本的破解文件

Oracle数据库入门教程(作者原创)

oracle数据库快速入门教程,不迷茫

qq_54525448的博客 3万+

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

Deep Dive1- Oracle DB

应一些极客朋友们要求,我们穿插一些更接地气技术文章,毕竟大多数传统非互联网公司还是使用目前较为传统的技术。暂且称这种为Deep Dive经典系列. 1. 饮水思源-创始人 曾几何时,Oracle可是我们这些老胳膊老腿的必备技能,没有啃过几本高级 Oracle开发指南,没读过官方指南,哪敢出门啊。不知在当今互联网+DT时代,廉颇老矣,尚能饭否?放心,我们最后上一个DT时代的Or

ErixHao的专栏 3698

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

Oracle-常用通用函数、条件判断函数和多行函数

Oracle-常用通用函数、条件判断函数和多行函数本文中用到的表: 通用函数通用函数就是可以作用于任何类型的函数(参数类型可以是number或varchar2或date类型)1)NVL(a,b) 如果a为null值,则取b为返回结果,否则返回a。2)NVL2(a,b,c) 如果a为null, 则结果为b, 否则结果为c。3)NULLIF(a,b) 在类型一致的情况下,如果a与b相同,返回NU

motionEnabled 3万+

Oracle数据库练习题及答案(个人总结)

最近学习了oracle数据库,以下是做的一些练习题整理。 --1、选择部门30中的雇员   select * from emp where deptno=30;   --2、列出所有办事员的姓名、编号和部门   select ename,empno,dname from emp e inner join dept d on e.deptno = d.deptn...

vip-le的博客 8149

Oracle聚合函数

我的Oracle数据库学习笔记 Day 6 聚合函数 文章目录我的Oracle数据库学习笔记问题:练习1. 显示员工的平均工资 (一个值)2. 显示员工的最高工资 (一个值)3.最低工资4.最高奖金,最低奖金5.统计公司中的员工人数 (一个值)6.显示员工的最高工资 (编号,最高工资) 问题: 显示员工的平均工资 (一个值) 显示员工的最高工资 (一个值) 统计公司中的员工人数 (一个值) 聚合函数:聚合函数同时对一组数据进行操作,返回一行结果 sum,avg,min,max,count sum

Yiky的博客 1075

oracle中的rownum函数

因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担。rownum函数在子查询外,则输出的结果将是先选出数据表中最新插入的9条数据,再执行子查询条件的递减排序。1.rownum函数是oracle中常用到的一个返回编号的函数,系统会按顺序分配为从查询返回的行的编号,返回的第一行的编号是1,第二行是2,后面以此类推x,这个函数可以用来限制查询返回的总行数,也就是获取第几行到第几行的数据。4.如果dept表中的数据有8条。...

m0_67394230的博客 1304

Oracle实践|内置函数之字符串函数

有些内置函数可以在SELECT语句中用于处理数据,同时也可以在WHERE等语句中使用。今天了解到的函数在处理数据库中的字符串数据时非常有用,特别是当需要转换、去除、清理或格式化数据时。具体是如何使用,都要考虑使用场景以及性能方面的问题,后续会再出一些相关的博文。欢迎关注博主「六月暴雪飞梨花」或加入【六月暴雪飞梨花社区】一起学习和分享Linux、C、C++、Python、Matlab,机器人运动控制、多机器人协作,智能优化算法,滤波估计、多传感器信息融合,机器学习,人工智能等相关领域的知识和技术。

Lycos 2134

ORACLE decode函数

DECODE是Oracle公司独家提供的功,该函数功能强大,下文对DECODE函数的语法作了详尽的阐述,供您参考学习。 含义解释:decode(条件,值1,返回值1,值2,返回值2,...值n,返回值n,缺省值) 该函数的含义如下:IF 条件=值1 THEN    RETURN(翻译值1)ELSIF 条件=值2 THEN    RETURN(翻译值2)    .........

L_3890的博客 176
上一篇: AJAX传值中文乱码 且解决传值不能传百分号
下一篇: JSTL 标签 ${fn:replace()}的问题
java_bai
博客等级 码龄15年 0粉丝 19原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值