標籤:color log from 字元 drop select art min 字串截取
需求:產生交易流水號,每次新增一條記錄時都自動加1,且流水號形式為000000001形式的10位元字。
思路:利用序列可以產生自增的流水號,只需要在前面添加N個0即可,同時,由於數位長度一定,因此可以組合使用序列和lpad()函數滿足此需求
代碼如下:
--產生序列create sequence SEQ_TEST--序列名稱 increment by 1 --增長量 start with 1 --起始數 minvalue 1 cache 20;SELECT SEQ_TEST.Nextval FROM dual; --序列的兩個方法:nextval、currvalSELECT SEQ_TEST.currval FROM dual;DROP SEQUENCE SEQ_TEST; --刪除序列SELECT LPAD(SEQ_TEST.nextval,10,‘0‘) FROM dual; --查詢產生序列的效果,具體使用可自行修改
補充:
lpad函數是Oracle資料庫函數,lpad函數從左邊對字串使用指定的字元進行填充。從其字面意思也可以理解,l是left的簡寫,pad是填充的意思,所以lpad就是從左邊填充的意思。
文法格式如下:
lpad( string, padded_length, [ pad_string ] )
說明:
string 準備被填充的字串;
padded_length 填充之後的字串長度,也就是該函數返回的字串長度,如果這個數量比原字串的長度要短,lpad函數將會把字串截取成從左至右的n個字元;
pad_string 填充字串,是個選擇性參數,這個字串是要粘貼到string的左邊,如果這個參數未寫,lpad函數將會在string的左邊粘貼空格。
摘自:http://www.linuxidc.com/Linux/2013-11/92828.htm
Oracle交易流水號問題