|
CDaniel 发表于 2016-1-11 12:16 ![]()
具体可以分享下嘛
這方法應該是在Table Trigger上加上After Insert抓取自身編號欄號給號並設定該欄位為Unique index。
以此例來說就是~~
SELECT NVL(MAX(SUBSTR(ACK_ID,1,10)),TO_CHAR(SYSDATE,'YYYYMM')||'0000')+1 FROM DATA_TABLE WHERE SUBSTR(HEADER_NO,1,6)=TO_CHAR(SYSDATE,'YYYYMM')
在Trigger中加上上述SQL來自動給號,因此可不必設定Sequence或Schedule即可達到每月自動重新
給號!!!
若想做到事前給號的話...也只要切個Table去保存目前最大號。在利用Function去取號並更新最大號,即
可達到事前取號!!我們目前也是最常使用此方法來自動給號。此方法可擺脫Oracle固定流水號的編碼模式
且編碼彈性(YYYYMM、YYMMDD、YYYYWW...etc,也可以有單別)重點是不需要特地定期去更新編碼。 |
|