oracle与sqlserver利用函数生成年月日加流水号
最近在做oracle相关的项目,刚接触oracle,与sqlserver语法上还是有区别的
sqlserver :
示例:FX+当前年月日+00001
如下图流水号实力所示
原理:
首先 'FX'是固定的,获取当前年月日方法在sqlserver中分别是:
1.年:YEAR(GETDATE())
2.月:month(getdate())
3.日:DAY(GETDATE())
其次最主要的是流水号自动加1,主要思路是获取到当前表中FxNum最大的数(后6位最大的数),并且用right函数获取后6位并且加1。
sql函数代码如下:
Create function [dbo].[f_GetFxNum]()
returns varchar(15)
as
begin
declare @FxNum varchar(15)
declare @time varchar(8)
set @time=CONVERT(varchar,YEAR(GETDATE()))+RIGHT(''+CONVERT(varchar,month(getdate())),2)+CONVERT(varchar,DAY(GETDATE()))--取到当前年月日
select @FxNum='FX'+@time+RIGHT(100000+ISNULL(RIGHT(MAX(FxNum),5),0)+1,5)--获取当前表最大值并加1
from PX_FxRecord
return @FxNum
end ALTER TABLE PX_FxRecord ADD DEFAULT ([dbo].[f_GetFxNum]()) FOR FxNum --将该函数绑定到FxNum作为该字段的默认值
参数说明:
Right(str,len) -字段返回最右边的len个字符的字符串str
MAX() -字段中最大的值
IsNull() -判断内容是否为空
convert() -格式转换
Oracle:
oracle比sql语法上简单精炼一点,其实思路都一样,编码模式以'FX'开头后8位年月日再加8位流水号,在该表中查询当日最大号加1,若没有,则从系统时间最小数开始(FX+当前年月日+000001),一直加1.
sql中的right函数在oracle中用substr代替
oracle函数代码如下:
create or replace function f_GetFxNum
return nvarchar2
as
FxNum nvarchar2(16);
begin
SELECT 'FX'||(NVL(MAX(SUBSTR(FxNum,3,14)),TO_CHAR(SYSDATE,'YYYYMMDD')||'')+1) into FxNum FROM PX_FxRecord WHERE SUBSTR(FxNum,3,8)=TO_CHAR(SYSDATE,'YYYYMMDD') ;
return FxNum;
end;
参数说明:
1.substr(str,截取开始位置,len) //返回截取的字, right(str,len) 返回从最右边开始len个字符串
2.TO_CHAR(SYSDATE,'YYYYMMDD') //返回当前年月日
3.NVL() // NVL(str1,str2) 如果oracle第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
总结
1.oracle和sqlserver思想原理都差不多,基于sql开发,只是语法实现方式上不同。
2.当然实现流水号不止函数这种方式,也可以利用存储过程来实现,有兴趣的朋友可以研究下。
oracle与sqlserver利用函数生成年月日加流水号的更多相关文章
- 你搞懂 ORACLE、 SQLSERVER、MYSQL与DB2的区别了吗
ORACLE. SQLSERVER.MYSQL与DB2的区别--平台性: Oracle.MYSQL与DB2可在所有主流平台上运行: SQL Server只能在Windows下运行: --安 ...
- Java学习-006-三种数据库连接 MySQL、Oracle、sqlserver
此文主要讲述在初学 Java 时,常用的三种数据库 MySQL.Oracle.sqlserver 连接的源代码整理.希望能对初学 Java 编程的亲们有所帮助.若有不足之处,敬请大神指正,不胜感激!源 ...
- Mysql、Oracle、SqlServer的JDBC连接实现和对比(提供驱动包)
首先,我们需要准备数据库连接所需的jar包.目前mysql的驱动包可能比较好找,但是oracle和sqlserver的有很多,要找到能用的要花一点点心思,这里直接把下载地址和版本发送出来. Mysql ...
- Oracle 与 SqlServer 的区别浅析总结
我主要用过的数据库为Oracle10g和SqlServer2008,通过实际运用和查阅资料整理如下: 主题 Oracle 10g SQLServer 2008 存储过程格式 Create Or Rep ...
- Oracle、SqlServer——基础知识——oracle 与 SqlServer 的区别(未完工)
一. oracle 与 SqlServer 的区别: 类别 oracle SqlServer 连接字符串 || + 变量 变量名 @变量名 初始赋值 := = SQL语句赋值 into = 绑定变量 ...
- 为什么说JAVA中要慎重使用继承 C# 语言历史版本特性(C# 1.0到C# 8.0汇总) SQL Server事务 事务日志 SQL Server 锁详解 软件架构之 23种设计模式 Oracle与Sqlserver:Order by NULL值介绍 asp.net MVC漏油配置总结
为什么说JAVA中要慎重使用继承 这篇文章的主题并非鼓励不使用继承,而是仅从使用继承带来的问题出发,讨论继承机制不太好的地方,从而在使用时慎重选择,避开可能遇到的坑. JAVA中使用到继承就会有两 ...
- Oracle转SqlServer
基础数据所对应的类型不同 在Oracle中有一些基础类型与Sqlserver中名字一样,但是所存储的数据格式不同,Date类型在Oracle中精确到秒,在Sqlserver中只能精确到天 表的结构 O ...
- SqlServer 利用游标批量更新数据
SqlServer 利用游标批量更新数据 Intro 游标在有时候会很有用,在更新一部分不多的数据时,可以很方便的更新数据,不需要再写一个小工具来做了,直接写 SQL 就可以了 Sample 下面来看 ...
- oracle与sqlserver部分区别
oracle和sqlserver的区别:1,执行修改操作要接commit,不然数据仅仅只是查看,并不是提交数据2,oracle不能使用select 字段 这种查看方式查看数据:3,oracle存储过程 ...
随机推荐
- System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接口类型“Microsoft.Office.Interop.Word._Application”。
报错:System.InvalidCastException: 无法将类型为“Microsoft.Office.Interop.Word.ApplicationClass”的 COM 对象强制转换为接 ...
- psql命令
原文:http://blog.csdn.net/smstong/article/details/17138355 psql# shell 环境下,查看当前所在的数据库的命令是: select cur ...
- Quick Cocos2dx 调试问题
最近由于忙了一段时间,忙完了之后又迷茫了这么久,然后终于开始继续Quick-x的学习之路了. 然后遇到了一个比较棘手的问题. 虽然照着官方mvc的例子敲代码,但是还是不停的报错,报错的问题下次集结成一 ...
- NodeJs-- 新建项目实例
安装Nodejs: 下载地址:http://nodejs.org 设置环境变量,例如我将nodejs装在D:/program文件夹下,则设以下为系统环境变量 D:\Program\nodejs 安装E ...
- linux 驱动入门6
看/sys目录经常看到bus device driver class. 这也是网上大量说的驱动驱动模型.这些的关系得熟悉得明白吧.是的.今天我先不整他们的关系.先逐个击破,然后再统一来理清楚他们之间的 ...
- MySQL索引背后的之使用策略及优化(高性能索引策略)
为了讨论索引策略,需要一个数据量不算小的数据库作为示例.本文选用MySQL官方文档中提供的示例数据库之一:employees.这个数据库关系复杂度适中,且数据量较大.下图是这个数据库的E-R关系图(引 ...
- 冯如杯day1
day1 今天尝试配置了seetaface工程 主要按照这个网址中提示的步骤配置seetaface 第一步安装并配置OpenCV 按照这个网址进行配置,结果遇到了这样的错误 无法启动此程序,因为计算机 ...
- jQuery修改css属性
jQuery CSS 操作jQuery 拥有三种用于 CSS 操作的重要函数:$(selector).css(name,value)$(selector).css({properties})$(sel ...
- (简单) POJ 3667 Hotel,线段树+区间合并。
Description The cows are journeying north to Thunder Bay in Canada to gain cultural enrichment and e ...
- Mybatis3.2.1整合Spring3.1
Mybatis3.2.1整合Spring3.1 根 据官方的说法,在ibatis3,也就是Mybatis3问世之前,Spring3的开发工作就已经完成了,所以Spring3中还是没有对 Mybatis ...