本文詳細記錄 GIS 系統中新部件編碼的自動生成規則、參數來源、流程圖邏輯及存儲過程 dlsys.fcGetPhyLayerNewObjCode 的分步實現,為同類編碼規則設計提供參考範本。
| 區域層級 | 代號 | 數字代碼 |
|---|---|---|
| 區 | district | 2 |
| 街道 | street | 3 |
| 社區 | community | 4 |
| 單元網格 | cell | 5 |
核心表:tcregion (基礎區域表) → 視圖 vcregion (展示街道/社區/網格層級代碼關係)。
[QDM (6位)] + [Unicode (4位)] + [MaxCode +/- 1 (流水號)] 示例: 410302 + 5140 + 00001 = 410302514000001
vcregion 以 cellName 查詢對應的區代碼,取後 6 位;查無則用 cellName 前 6 位兜底。subTypeID 查詢 unique_code,取後 4 位。dlsys.fcGetPhyLayerNewObjCode)SELECT unique_code, phy_layer_name INTO v_unicode, v_layer_name FROM dlgis.phy_layer_attr WHERE subtype_id = p_subtype_id; -- 假設查到 unique_code=...5140 v_unicode := SUBSTR(v_unicode, -4); -- 取後 4 位 → '5140'
SELECT sort_rule INTO v_sort_rule FROM dlgis.phy_layer_sort_config WHERE layer_name = v_layer_name; -- v_sort_rule: 'ASC' (遞增+1) 或 'DESC' (遞減-1)