-
Data Governance Dev authored
主题 16 — Oracle 反查 0 行 - 现象:Oracle 扫描有违规值但反查表格 0 行 - 根因:data_dict 的 column_name 是 Oracle 原样「大写」,但 _rows_as_dicts 把行 dict key 规范化成「小写」, row.get('TZRSFZH') 永远 None → 现场 validate 误判 NULL 跳过 - 修复:_fetch_bad_rows_one 加 row.get(cname.lower()) fallback 主题 17 — Oracle 表格其他列也空 - 现象:DA60_QY_MSXX 70 行违规展开后只有「违规」列,其他列全空 - 根因:Oracle _rows_as_dicts 把所有列名强制小写,data_dict 大写, 前端 row[colName](大写)查不到 → formatCell(undefined)='∅' 主题 16 只修了 cname 单列,没修其他列 - 用户反馈:「mysql 和 Oracle 难道不是用的同一套接口吗?」 三个 DB 走同一个 _rows_as_dicts,但驱动 case 行为不同: MySQL pymysql: 跟 schema 达梦 dmPython: 保留原样 Oracle oracledb: 总是 lowercase - 修复:新增 _normalize_row_keys(row, columns),装配 BadTable 时 用 columns 元数据做大小写权威,把 row 所有 key 改成一致 主题 18 — 0 违规的表不显示 - 现象:PM_SYSTEMUSER.SFZH 0 违规但表格仍渲染 + 空表 + 「该表无违规行」 - 根因:装配点不管有没有违规都创建 BadTable - 修复:流式推送处 + 最终汇总处都加 if not fixed_rows: continue 详细 work-log 见 work-logs/2026-08-17.md 主题 16/17/180320cbc0