/// <summary>
/// 生成流水号
/// </summary>
public class OrderHelper
{
/// <summary>
/// 帮助类
/// </summary>
private OrderHelper() { }

ELSE

A Young idler  ~  an old beggar!

IF substr(V_CURRENTCODE,8) = to_char(sysdate,’yyyymmdd’) THEN

DECLARE

BEGIN

SELECT

CV_1 OUT NVARCHAR2

SELECT DISTINCT(to_char(sysdate,’yyyymmdd’)|| ‘0001’) as [编码字段名]
into CV_1 from dual ;

Create Or Replace Procedure MyProcedure

}

dbms_output.put_line(CV_1);

 
最近在做项目过程中,经常会遇到生成订单流水号唯一性的应用,也有不少同事也请教我对唯一性的
“流水号”的问题,根据个人所见,一般生成的规则都是根据日期来进行操作,我目前在做的一个项目:”报告卡“上的编码就是根据
”yyyyMMdd+四位数字(累加)“的格式生成,一般对这一类的操作最好是在存储过程中生成。

/// <summary>
/// 生成订单编号
/// 生成规则yyyyMMdd+四位数字
/// </summary>
/// <returns></returns>
public static string GetOrderCode(string code)
{
if (string.IsNullOrWhiteSpace(code)) return string.Format(“{0}{1}”,
DateTime.Now.ToString(“yyyyMMdd”), “0001”);
我们来简单的举两种方法来生成订单流水号的唯一性。if (code.TrimEnd().Length <= 11 || code.TrimEnd().Length >= 13)
return “当前编码规则不正确!”;
if (code.Substring(0, 8) ==
DateTime.Now.ToString(“yyyyMMdd”).TrimEnd())
{
if (Convert.ToInt32(code.Substring(9, 4)) >= 9999) return
“当前编码规则已最大值,联系管理员扩大存储容量!”;
return string.Format(“{0}{1}”, code.Substring(0, 8),
(Convert.ToInt32(code.Substring(9, 4)) + 1).ToString());
}
else
return string.Format(“{0}{1}”, DateTime.Now.ToString(“yyyyMMdd”),
“0001”);
}

END;

我们来简单的举两种方法来生成订单流水号的唯一性。 

  下面,我们来简单的举两种方法来生成订单流水号的唯一性:

(2)通过程序代码方式生成

CAST(

我们来简单的举两种方法来生成订单流水号的唯一性。只需调用静态方法即可返回编码。

我们来简单的举两种方法来生成订单流水号的唯一性。AS [编码字段名]

BEGIN

(1)通过存储过程方式生成(以Oracle为例)

本文章是新注册用户的第一篇文章,有不足之处,请留言赐教。。。

END IF;

至于调用存储过程我这里就不举例子了,微软有专门提供访问数据层中存在调用
”存储过程“的方法。

FROM [表名]

V_CURRENTCODE NVARCHAR2(100)

CAST(nvl(Max(substr([编码字段名] , 0 ,8)),0) AS nvarchar2(30)) ||
CAST(nvl(Max(substr([编码字段名] , 9 ,4)),0) AS nvarchar2(30))

SELECT MAX([编码字段名]) INTO V_CURRENTCODE FROM [表名];

}

{

AS

dbms_output.put_line(CV_1);

INTO CV_1

AS INT)+1

相关文章