oracle 跟據字首規則生成編碼解決方法
先說需求。
人員屬於組織機構,組織機構為11位字串程式碼,人員程式碼需要在新增人員時後臺生成。
生成規則 人員程式碼 = 組織機構程式碼前7位+ 4位的數字。
要求:1、生成的程式碼不可以重複(廢話)
2、可以找到最小的未使用的程式碼。如 跟據字首【2130102】
表中資料目前只有【2130102】【0002】 那應該得到【2130102】【0001】
如果表中資料有 【2130102】【0001】,【2130102】【0002】 那應該得到 【2130102】【0003】
需求說明白了,直接上解決方法,一個sql語句搞定問題。
下面嘮叨下關於這個語句效能相關的東西。
1、使用到 select rownum seq from dual connect by level < 10000 來構造虛擬表,生成的表會放在記憶體中,所以數量不應太大 。一般來說10000的數量基本可以滿足所有的需求了。
2、connect by level
3、一定要在將要生成編碼的欄位上建立索引,不然嚴重影響效率。
人員屬於組織機構,組織機構為11位字串程式碼,人員程式碼需要在新增人員時後臺生成。
生成規則 人員程式碼 = 組織機構程式碼前7位+ 4位的數字。
要求:1、生成的程式碼不可以重複(廢話)
2、可以找到最小的未使用的程式碼。如 跟據字首【2130102】
表中資料目前只有【2130102】【0002】 那應該得到【2130102】【0001】
如果表中資料有 【2130102】【0001】,【2130102】【0002】 那應該得到 【2130102】【0003】
需求說明白了,直接上解決方法,一個sql語句搞定問題。
點選(此處)摺疊或開啟
-
select '2130102' /*P_PREFIX*/||lpad(min(t.seq),4,'0')
-
from (select rownum seq from dual connect by level <10000)t
-
where t.seq not in (select to_number(jbgm,8,4))
-
from t_pt_qx_zzjg t
- where t.jgbm like '2130102%'/*P_PREFIX*/
下面嘮叨下關於這個語句效能相關的東西。
1、使用到 select rownum seq from dual connect by level < 10000 來構造虛擬表,生成的表會放在記憶體中,所以數量不應太大 。一般來說10000的數量基本可以滿足所有的需求了。
2、connect by level
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30066956/viewspace-1403733/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- P001-根據編碼規則自動生成ID的函式函式
- 系統單據號生成規則推薦
- Protobuf編碼規則
- HAP_編碼規則
- 解決預設方法衝突的規則
- Oracle 編譯儲存過程卡死解決方法Oracle編譯儲存過程
- 字首中綴字尾表示式規則
- 主資料之編碼規則
- UTF-8編碼規則(轉)
- 體面編碼之命名規則
- 根據使用者編號生成邀請碼
- 計算機編碼規則之:Base64編碼計算機
- STM CubeMx不能生成程式碼的解決方法
- Oracle儲存過程編譯卡死的解決方法Oracle儲存過程編譯
- 自定義Mybatis自動生成程式碼規則MyBatis
- 開源規則引擎——ice:致力於解決靈活繁複的硬編碼問題
- oracle undo分配規則Oracle
- eKuiper Newsletter 2022-05|protobuf 編解碼支援、視覺化拖拽編寫規則UI視覺化
- SQLServer的排序規則(字符集編碼)SQLServer排序
- Oracle OCP(18):命名規則Oracle
- java安全編碼指南之:Thread API呼叫規則JavathreadAPI
- JVM 模板直譯器之如何根據位元組碼生成彙編碼?JVM
- 在git中設定.gitignore忽略規則不起作用的解決方法Git
- 4.編寫規則
- java安全編碼指南之:執行緒安全規則Java執行緒
- ORACLE匯入遇到ORACLE錯誤959解決方法Oracle
- ORACLE ORA-1652的解決方法Oracle
- 解決問題的三條規則 | Yonatan Zunger
- 使用pt-kill根據一定的規則來kill連線的方法
- 根據api檔案生成程式碼API
- Python 根據id生成唯一碼Python
- 根據URL地址生成二維碼
- Linux 和 Windows 下編碼問題處理 codestyle 解決方法LinuxWindows
- htmlhint 規則詳解HTML
- Spring MVC 中文編碼亂碼解決SpringMVC
- android 混淆規則作用,Android程式碼混淆詳解Android
- GB28181協議中20位編碼規則說明協議
- 開源相機管理庫Aravis學習——PixelFormat編碼規則ORM
- oracle資料隱式轉換規則Oracle