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')||'000000')+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第一个参数为空那么显示第二个参数的值,如果第一个参数的值不为空,则显示第一个参数本来的值。
总结

浙公网安备 33010602011771号