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的函式函式
- 系統單據號生成規則推薦
- php的編碼規則PHP
- 應遵循的PL/SQL編碼規則 - ORACLE (zt)SQLOracle
- 解決預設方法衝突的規則
- keil編譯不能生成“.HEX”的解決方法編譯
- PL/SQL的編碼規則SQL
- 編碼規則指南(轉貼)
- Java原始碼的折行規則(編碼規範)Java原始碼
- 主資料之編碼規則
- CMake生成OpenCV解決方案&&編譯OpenCV原始碼OpenCV編譯原始碼
- 計算機編碼規則之:Base64編碼計算機
- 自定義Mybatis自動生成程式碼規則MyBatis
- PL/SQL 01 程式碼編寫規則SQL
- 開源規則引擎——ice:致力於解決靈活繁複的硬編碼問題
- python 生成csv亂碼問題解決方法Python
- SQLServer的排序規則(字符集編碼)SQLServer排序
- Oracle 編譯儲存過程卡死解決方法Oracle編譯儲存過程
- JVM 模板直譯器之如何根據位元組碼生成彙編碼?JVM
- Oracle儲存過程編譯卡死的解決方法Oracle儲存過程編譯
- eKuiper Newsletter 2022-05|protobuf 編解碼支援、視覺化拖拽編寫規則UI視覺化
- java安全編碼指南之:執行緒安全規則Java執行緒
- java安全編碼指南之:Thread API呼叫規則JavathreadAPI
- android jni程式碼編寫規則--整理總結Android
- 【轉】C#3.0編碼習慣與命名規則C#
- 【java規則引擎】之規則引擎解釋Java
- 在git中設定.gitignore忽略規則不起作用的解決方法Git
- oracle undo分配規則Oracle
- 解決問題的三條規則 | Yonatan Zunger
- 命令列的亂碼以及編碼的問題的解決方法命令列
- Delphi編碼標準——一般的原始碼格式規則 (轉)原始碼
- AWR不能自動生成快照解決方法?
- MRTG生成首頁報錯解決方法
- Oracle語句優化53個規則詳解Oracle優化
- Oracle語句優化30個規則詳解Oracle優化
- 根據URL地址生成二維碼
- 根據api檔案生成程式碼API