|
今天總結一下,
大MM,大GG 的方法:
第一個使我想到了創建sequence,因為之前寫過一個退貨單自動触發編碼,就是用sequence實現的,試了下,可以編碼,但所有的資料全是同一個編號,
備註:這個sequence的触發,我是放在before trigger 中進行的,看了一下文檔,資料上說,也只能触發一次,所以放在before trigger 上是不可實現的 ,同理放在after trigger 也是不可能實現的。
頁之間触發,試了,report 老是提醒錯誤。這為其一
其二, 黑枪 開始說讓我試rownum ,我馬上就試了試,確實是產生了,每一個都產生了,這個不容怀疑,但是我是讓部門作為參數,如果換一個部門,rownum也又從開始重復,
好比說,當傳A 部門時,從 001 開始,
傳B部門時,也是從001開始,
後來查看了一下rownum是如何產生的原理,我記得此rownum是在緩存區產生的一個序列(應該是這樣的吧),當有數據進行重新排序時,會重復編碼,
備註:我不知道我這樣想是不是對的,黑槍你有其它的想法或者提示我還有些沒有想到??
提示提示?
後來,ZHAO兄,給我提示了另外一種方法,
說可以用個cursor 來實現,我試了下,開始放在before 中,不會報錯,但就是不出來編碼,
几經週折後,蹦出一個編碼,可全是統一的編碼 ,好像了沒太行的通,
後來ZHAO兄,雙建議我使用rownum ,試了,總還是不行.....也還是出現重復編碼
備註:ZHAO兄不知有沒有需要補充的?讓不才多試兩下??
這為其三
其四,
e-go給我提示說用包,放在before中,
我也試工了下,放在before trigger ,report 老是報錯,package,不讓調用
後來,想到主SQL 中進行調用,目前沒有結果,還沒有進行測試
這為其四,
備註:大家對這個方法如何看待??將包體放在主sql中,進行存儲,並產生延續編號
最後一個是寫CF ,試了兩次
一看,行不通,完全行不通,
所以這個方法,我在一開始的時候就將它淘汰了
總共就這五種方法。
我要的結果是:
當同為一個ORG_ID時,序號都是從第一個到最後,中間不管是從那個部門開始都要延續最後一個編碼,好比說
我第一廠,A部門,從001到056
我一廠的,B部門,就開始從057開始編碼到099
我一廠的,C部門,就開始從099開始至最後
D部門...........
如果換一個組織到二廠的話,
雙是從001開始編碼,和前面的一樣
A部門,從001到011
B部門,就開始從012開始編碼到054
C部門,就開始從055開始至最後
............... |
|