| 目标库 | 严重度 | 类别 | 规则 | 位置 | 消息 |
|---|---|---|---|---|---|
| opengauss:6.0:A | major | function | ora.func.userenv | corpus/billing-demo/sqltext/awr_top.sql:36 | USERENV 函数(已废弃遗留写法):openGauss 6.0 A 模式 不支持(键覆盖面(SESSIONID/LANG 等)待逐键核对 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 USERENV('SESSIONID')改写建议 session_context('USERENV', ...) 验证提示 Oracle 自身已建议改 SYS_CONTEXT('USERENV', ...);迁移时按键逐个映射(SESSIONID/LANG/TERMINAL),部分键目标端无对应。OB 早期仅少量 USERENV 参数可用,按目标版本逐键核对。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/sqltext/awr_top.sql:40 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.for_update_of | corpus/billing-demo/sqltext/awr_top.sql:56 | SELECT ... FOR UPDATE OF 列级锁定写法:openGauss 6.0 A 模式 部分支持(FOR UPDATE OF 为 PG 风格接表引用;Oracle 列引用写法需改写,锁范围需重审) |
|
证据片段 FOR UPDATE OF 验证提示 Oracle 的 OF 接"列名"(锁定该列所在表的行);PG 系 FOR UPDATE OF 接"表别名"——语法迁移必须把列改成表引用,多表连接场景锁范围需重审 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/sqltext/awr_top.sql:68 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/sqltext/awr_top.sql:72 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM BILL_DETAIL BD, TARIFF_ITEM TI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/sqltext/awr_top.sql:86 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.rownum_without_order | corpus/billing-demo/sqltext/awr_top.sql:90 | ROWNUM 限制未伴随 ORDER BY:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 ROWNUM <= 100 改写建议 先补 ORDER BY 业务排序键和唯一稳定键,再用 FETCH FIRST n ROWS ONLY 或 ROW_NUMBER() 取 Top-N 验证提示 判定条件:业务把无 ORDER BY 的 ROWNUM Top-N 当作“最新、最大或固定首批”时结果不稳定;纯任意抽样可保留其非确定性。 |
|||||
| opengauss:6.0:A | minor | syntax | ora.hint.optimizer_hint | corpus/billing-demo/sqltext/awr_top.sql:94 | Optimizer Hint(/*+ ... */):openGauss 6.0 A 模式 部分支持(实测2026-07-09(og6.0.5): Oracle 风格 /*+ leading(...) */ 可随 SQL EXPLAIN,但目标有自有 plan hint 体系,词表/效果不等价,需重写或删除后做性能回归) |
|
证据片段 /*+ PARALLEL(D 4) */ 验证提示 源工具用词法级过滤器(区分字符串/注释/q-quote)按白名单清洗:默认 keep_supported 策略, OB Oracle 模式约 60+ 个 hint 在白名单(APPEND/FULL/INDEX/LEADING/PARALLEL 系/NO_* 系等), 未知 hint 删除并采样上报。不兼容 hint 不报错但静默失效,性能回归需专项测
|
|||||
| opengauss:6.0:A | minor | function | ora.func.listagg | corpus/billing-demo/sqltext/awr_top.sql:100 | LISTAGG 聚合函数:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): LISTAGG ... WITHIN GROUP 排序聚合等价;DISTINCT 报 cannot use DISTINCT with WITHIN GROUP,ON OVERFLOW TRUNCATE 语法被拒 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 LISTAGG(SERV_NBR, ',') WITHIN GROUP (ORDER BY SERV_NBR) 改写建议 按目标改字符串聚合并把 WITHIN GROUP 顺序放入聚合内部;DISTINCT 先显式去重,ON OVERFLOW ERROR/TRUNCATE 用长度检查或受控截断分支实现 验证提示 判定条件:调用 LISTAGG;需分别识别聚合/分析形态、DISTINCT、WITHIN GROUP 顺序和 ON OVERFLOW 契约。 |
|||||
| opengauss:6.0:A | major | function | ora.func.harvest_ora2pg_substr_nonnegative | corpus/billing-demo/sqltext/awr_top.sql:116 | SUBSTR 非负起点语义:openGauss 6.0 A 模式 部分支持(A 兼容模式文档提供本批 trim/length/ltrim/rtrim/instr/substr 字符函数;CHAR、空串、NULL、start=0 和多字节边界建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SUBSTR(CUST_CODE, 1, 10) 改写建议 SUBSTR(text,start[,len]) -> substring(text from start [for len]);orafce 目标可改 oracle.substr 验证提示 命中静态非负或符号未知的动态起点,仅与负整数字面量规则互斥;动态起点运行时可能为负,且 Oracle start=0 边界不同,必须人工复核 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/sqltext/awr_top.sql:130 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 1 - LEVEL), 'YYYYMM') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/sqltext/awr_top.sql:130 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'MM') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/sqltext/awr_top.sql:134 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(PAY_TIME, 'YYYYMMDD') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/sqltext/awr_top.sql:134 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/sqltext/awr_top.sql:155 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM BILL_DETAIL BD, ACCT_INFO AI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | minor | syntax | ora.hint.optimizer_hint | corpus/billing-demo/sqltext/awr_top.sql:155 | Optimizer Hint(/*+ ... */):openGauss 6.0 A 模式 部分支持(实测2026-07-09(og6.0.5): Oracle 风格 /*+ leading(...) */ 可随 SQL EXPLAIN,但目标有自有 plan hint 体系,词表/效果不等价,需重写或删除后做性能回归) |
|
证据片段 /*+ INDEX(BD IDX_BILL_DETAIL_ACCT) FULL(CI) */ 验证提示 源工具用词法级过滤器(区分字符串/注释/q-quote)按白名单清洗:默认 keep_supported 策略, OB Oracle 模式约 60+ 个 hint 在白名单(APPEND/FULL/INDEX/LEADING/PARALLEL 系/NO_* 系等), 未知 hint 删除并采样上报。不兼容 hint 不报错但静默失效,性能回归需专项测
|
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.alter_session | corpus/billing-demo/sqltext/ops_scripts.sql:7 | ALTER SESSION SET 会话参数:openGauss 6.0 A 模式 不支持(无 ALTER SESSION 语句,待真库复核;连接池初始化 SQL 需排查) |
|
证据片段 ALTER SESSION SET 改写建议 SET 参数语句(参数名逐个映射) 验证提示 目标端改 SET 参数语句,但参数名基本不同(NLS_DATE_FORMAT→datestyle 等),逐参数映射;CLOSE DATABASE LINK、ADVISE、COMMIT IN PROCEDURE、GUARD 子形态无通用等价物;连接池初始化 SQL 里的该类语句最易漏改 |
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.alter_session | corpus/billing-demo/sqltext/ops_scripts.sql:10 | ALTER SESSION SET 会话参数:openGauss 6.0 A 模式 不支持(无 ALTER SESSION 语句,待真库复核;连接池初始化 SQL 需排查) |
|
证据片段 ALTER SESSION SET 改写建议 SET 参数语句(参数名逐个映射) 验证提示 目标端改 SET 参数语句,但参数名基本不同(NLS_DATE_FORMAT→datestyle 等),逐参数映射;CLOSE DATABASE LINK、ADVISE、COMMIT IN PROCEDURE、GUARD 子形态无通用等价物;连接池初始化 SQL 里的该类语句最易漏改 |
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.sqlplus_exec | corpus/billing-demo/sqltext/ops_scripts.sql:13 | SQL*Plus EXEC/EXECUTE 元命令行:openGauss 6.0 A 模式 不支持(gsql 无 SQL*Plus EXEC 元命令;运维脚本逐行改并同查 SPOOL/SET 元命令) |
|
证据片段 EXEC DBMS_JOB.RUN 改写建议 CALL proc(...) / SELECT func(...) 验证提示 运维/发布脚本高发:EXEC/HOST/SPOOL/WHENEVER/SET SERVEROUTPUT 是 SQL*Plus 客户端命令不是 SQL,目标端 CLI 改 CALL proc(...) 或改发布脚本流程 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.dbms_scheduler | corpus/billing-demo/sqltext/ops_scripts.sql:13 | DBMS_SCHEDULER / DBMS_JOB 调度作业:openGauss 6.0 A 模式 部分支持(有类 DBMS_JOB 定时任务兼容接口(PKG_SERVICE/DBE_TASK 类);DBMS_SCHEDULER 全量语义无对应) |
|
证据片段 DBMS_JOB.RUN 验证提示 源工具把 JOB/SCHEDULE 整族定为 manual("Scheduler and job semantics are not certified for automatic execution"),转换产物只作参考。补盲扫描只认静态字面量的 CREATE_JOB/CREATE_SCHEDULE,job_name 为变量拼接时仅报 unresolved 不盲猜——dbca 同款原则
|
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.sqlplus_exec | corpus/billing-demo/sqltext/ops_scripts.sql:16 | SQL*Plus EXEC/EXECUTE 元命令行:openGauss 6.0 A 模式 不支持(gsql 无 SQL*Plus EXEC 元命令;运维脚本逐行改并同查 SPOOL/SET 元命令) |
|
证据片段 EXEC DBMS_JOB.SUBMIT 改写建议 CALL proc(...) / SELECT func(...) 验证提示 运维/发布脚本高发:EXEC/HOST/SPOOL/WHENEVER/SET SERVEROUTPUT 是 SQL*Plus 客户端命令不是 SQL,目标端 CLI 改 CALL proc(...) 或改发布脚本流程 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.dbms_scheduler | corpus/billing-demo/sqltext/ops_scripts.sql:16 | DBMS_SCHEDULER / DBMS_JOB 调度作业:openGauss 6.0 A 模式 部分支持(有类 DBMS_JOB 定时任务兼容接口(PKG_SERVICE/DBE_TASK 类);DBMS_SCHEDULER 全量语义无对应) |
|
证据片段 DBMS_JOB.SUBMIT 验证提示 源工具把 JOB/SCHEDULE 整族定为 manual("Scheduler and job semantics are not certified for automatic execution"),转换产物只作参考。补盲扫描只认静态字面量的 CREATE_JOB/CREATE_SCHEDULE,job_name 为变量拼接时仅报 unresolved 不盲猜——dbca 同款原则
|
|||||
| opengauss:6.0:A | major | syntax | ora.syntax.flashback_query | corpus/billing-demo/sqltext/ops_scripts.sql:19 | FLASHBACK 查询(AS OF SCN/TIMESTAMP、VERSIONS BETWEEN):openGauss 6.0 A 模式 不支持(有闪回查询能力但语法不同(TIMECAPSULE)且依赖 Ustore 存储引擎;AS OF SCN/TIMESTAMP 写法需改造 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 AS OF TIMESTAMP 验证提示 依赖 UNDO 的时间点查询无通用等价物;评估业务用途(误删恢复/审计对账)后改为历史表/审计日志方案,openGauss 的 TIMECAPSULE 语法不同且有存储引擎前提 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.not_in_subquery | corpus/billing-demo/sqltext/ops_scripts.sql:24 | NOT IN 子查询:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 NOT IN ( SELECT 验证提示 子查询列含 NULL 时 NOT IN 语义易踩坑;常改 NOT EXISTS 并补空值用例与执行计划验证。 |
|||||
| opengauss:6.0:A | critical | syntax | ora.syntax.rowid_qualified | corpus/billing-demo/sqltext/ops_scripts.sql:24 | 别名限定的 ROWID 伪列引用(BD.ROWID):openGauss 6.0 A 模式 部分支持(研究结论:有弱 ROWID 兼容但语义不等价(物理地址跨库失效);按主键方案改造,支持面待真库验证) |
|
证据片段 BD.ROWID 验证提示 与 ora.syntax.rowid_pseudocolumn(未限定形态)互补,仅命中限定形态避免双报;典型场景是多表/自连接去重(MIN(D.ROWID))。若限定名恰是真实列(罕见)会误报,按证据行人工排除。集成提示——matcher 已支持 pseudocolumn qualified=true,原规则改 qualified 后可收编本条 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/sqltext/ops_scripts.sql:33 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM ACCT_BILL B, OWE_BILL O 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/sqltext/ops_scripts.sql:43 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'MM') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | minor | function | ora.func.interval_conversion | corpus/billing-demo/sqltext/ops_scripts.sql:46 | NUMTOYMINTERVAL / NUMTODSINTERVAL / TO_YMINTERVAL / TO_DSINTERVAL:openGauss 6.0 A 模式 部分支持(实测2026-07-09(og6.0.5): NUMTODSINTERVAL 支持 DAY/HOUR/MINUTE;NUMTOYMINTERVAL(integer,'YEAR') 函数不存在) |
|
证据片段 NUMTODSINTERVAL( 验证提示 常见于 INTERVAL 分区定义与日期偏移计算;PG 系改 make_interval 或 interval 字面量乘法,注意月/日不可混算的 Oracle 约束在目标端放宽后行为变化 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/sqltext/ops_scripts.sql:49 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | minor | type | ora.type.national_char | corpus/billing-demo/ddl/schema.sql:13 | NCHAR / NVARCHAR2 国家字符集类型:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): NCHAR/NVARCHAR2 ASCII 建表与长度可用;库编码 SQL_ASCII,无法验证国家字符集/CJK 语义,保留 partial 【本批真机验证边界】 本批真机 DDL 建删通过:仅证明 DDL 语法与对象建删,不证明数据、事务或会话语义;本批证据结论不超过 partial) |
|
证据片段 NVARCHAR2( 验证提示 国家字符集与数据库字符集双字符集架构是 Oracle 特有;目标端统一字符集后映射普通 varchar,长度按字符语义换算,混合中英文数据必测截断边界 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:13 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | type | ora.type.varchar2_length_semantics | corpus/billing-demo/ddl/schema.sql:13 | VARCHAR2/CHAR 显式 BYTE/CHAR 长度语义:openGauss 6.0 A 模式 不支持(有 NLS_LENGTH_SEMANTICS 级兼容(研究结论);BYTE/CHAR 语义与字符集膨胀窗口需按目标字符集重标定 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 VARCHAR2(32 BYTE) 验证提示 BYTE 语义列在字符集变化(如 GBK→UTF8MB4)迁移中有截断风险,PL 参数/变量位置的 VARCHAR2(10 CHAR) 也需纳入扫描。源工具实践口径:BYTE 语义按 DATA_LENGTH 为基准、目标端长度落在 [ceil(src*1.5), ceil(src*2.5)] 窗口内视为合理扩容; CHAR 语义(CHAR_USED='C')保持等长、禁止扩容。该系数可作为估算参考
|
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:31 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:57 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | function | ora.func.harvest_ora2pg_round_numeric_scale | corpus/billing-demo/ddl/schema.sql:70 | ROUND 数值精度参数改写:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 ROUND(BALANCE / 100, 2) 改写建议 ROUND(number,n) -> round((number)::numeric,n);orafce 目标可改 oracle.round(number,n) 验证提示 第二参数限整数字面量、bind 或标识符并排除日期格式字符串;标识符仍可能是日期格式变量,需结合首参类型复核;首参支持两层括号嵌套 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:81 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | type | ora.type.timestamp_ltz | corpus/billing-demo/ddl/schema.sql:92 | TIMESTAMP WITH LOCAL TIME ZONE 类型:openGauss 6.0 A 模式 不支持(TIMESTAMP WITH LOCAL TIME ZONE 支持情况待真库验证;展示时区来源机制不同 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 WITH LOCAL TIME ZONE 验证提示 LOCAL 变体(按会话时区展示、按库时区存储)无直接等价物;改 timestamptz 后展示时区来源从"会话 TIME_ZONE"变为目标端时区参数,跨时区部署的应用必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:92 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | object | ora.column.identity | corpus/billing-demo/ddl/schema.sql:92 | IDENTITY 自增列:openGauss 6.0 A 模式 不支持(GENERATED AS IDENTITY 列语法支持情况待真库验证;可改序列+默认值方案 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 GENERATED ALWAYS AS IDENTITY 改写建议 按目标 identity 语法映射 ALWAYS/BY DEFAULT/ON NULL、起点和步长;目标不等价时改显式 sequence+default 并补内部序列权限 验证提示 判定条件:列声明 GENERATED ALWAYS/BY DEFAULT [ON NULL] AS IDENTITY;普通虚拟列或显式 sequence default 不命中。 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:105 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | object | ora.column.default_on_null | corpus/billing-demo/ddl/schema.sql:105 | DEFAULT ON NULL 列默认值:openGauss 6.0 A 模式 不支持(DEFAULT ON NULL 支持情况待真库验证;降级普通 DEFAULT 会改变显式插 NULL 的行为 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 DEFAULT ON NULL 验证提示 与普通 DEFAULT 语义不同(显式插入 NULL 也会被替换成默认值);源工具单列 reason code 对比,目标不支持时降级为普通 DEFAULT 会改变行为 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:122 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:136 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:168 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | object | ora.object.iot | corpus/billing-demo/ddl/schema.sql:168 | 索引组织表(ORGANIZATION INDEX):openGauss 6.0 A 模式 不支持(无索引组织表;点查性能需评估 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 ORGANIZATION INDEX 改写建议 去 ORGANIZATION INDEX 按普通表+主键建 验证提示 源工具按黑名单(IOT)分流;常见改造是去掉 ORGANIZATION INDEX/OVERFLOW/PCTTHRESHOLD 子句按普通表+主键建,需评估点查性能与二级索引回表行为 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:192 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | function | ora.func.interval_conversion | corpus/billing-demo/ddl/schema.sql:219 | NUMTOYMINTERVAL / NUMTODSINTERVAL / TO_YMINTERVAL / TO_DSINTERVAL:openGauss 6.0 A 模式 部分支持(实测2026-07-09(og6.0.5): NUMTODSINTERVAL 支持 DAY/HOUR/MINUTE;NUMTOYMINTERVAL(integer,'YEAR') 函数不存在) |
|
证据片段 NUMTOYMINTERVAL( 验证提示 常见于 INTERVAL 分区定义与日期偏移计算;PG 系改 make_interval 或 interval 字面量乘法,注意月/日不可混算的 Oracle 约束在目标端放宽后行为变化 |
|||||
| opengauss:6.0:A | major | object | ora.partition.interval | corpus/billing-demo/ddl/schema.sql:219 | INTERVAL 自动分区:openGauss 6.0 A 模式 不支持(支持间隔分区(范围分区自动扩展);语法与边界行为需对照验证 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 PARTITION BY RANGE (BILL_DATE) INTERVAL ( 改写建议 目标原生 INTERVAL 时逐项保留表达式、最高显式 RANGE 分区上界定义的过渡点和子分区模板;否则移除自动扩展,按该过渡点至业务 horizon 预建等价 RANGE 分区,并部署幂等滚动作业在写入前继续预建,同时替换依赖自动分区名的运维 SQL 验证提示 判定条件:RANGE 分区后声明 INTERVAL 自动扩展;需提取 interval 表达式、最高显式 RANGE 分区上界(transition point)、分区键类型、既有/复合分区、自动分区名及依赖该名的运维 SQL,并核对目标版本能力。 |
|||||
| opengauss:6.0:A | critical | object | ora.object.external_table | corpus/billing-demo/ddl/schema.sql:233 | 外部表(ORGANIZATION EXTERNAL):openGauss 6.0 A 模式 不支持(有外表能力(GDS/fdw 类);ORACLE_LOADER 语法与 DIRECTORY 依赖需整体改造 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 ORGANIZATION EXTERNAL 验证提示 依赖 DIRECTORY 与服务器本地文件,需整体改造为 ETL 装载或对象存储外表方案;源工具将其列入黑名单不生成 DDL |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:251 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:268 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:281 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | type | ora.type.clob_base | corpus/billing-demo/ddl/schema.sql:293 | Oracle CLOB 类型:openGauss 6.0 A 模式 部分支持(CLOB 可映射/兼容,但大对象接口与空串语义建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 , PRINT_XML CLOB 改写建议 保留 CLOB 验证提示 PG 映射 text;Oracle 兼容目标通常原生。大对象流式接口、空串与字符集建议 PoC 复核。 |
|||||
| opengauss:6.0:A | minor | type | ora.type.interval_columns | corpus/billing-demo/ddl/schema.sql:306 | INTERVAL YEAR TO MONTH / DAY TO SECOND 类型:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): INTERVAL YEAR TO MONTH/DAY TO SECOND 可建表和插入;YEAR TO MONTH 取回显示为 days(1-2 -> 425 days),日历月语义需复核 【本批真机验证边界】 本批真机 DDL 建删通过:仅证明 DDL 语法与对象建删,不证明数据、事务或会话语义;本批证据结论不超过 partial;本结论来自人工代表性 fixture,未覆盖的自动变体及其处置见证据工件) |
|
证据片段 INTERVAL DAY(3) TO SECOND 验证提示 Oracle 是两个独立受限类型;PG 系是单一 interval 类型——迁移后"年月/日时分开存"的约束消失,混合单位运算不再报错,依赖该约束的校验逻辑需业务确认 |
|||||
| opengauss:6.0:A | minor | type | ora.type.interval_leading_precision | corpus/billing-demo/ddl/schema.sql:306 | INTERVAL YEAR / DAY leading precision:openGauss 6.0 A 模式 部分支持(A 模式限定符支持面未由本批真机覆盖;建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 INTERVAL DAY(3) TO SECOND(0) 改写建议 目标不受理时去除 YEAR/DAY leading precision,保留字段限定 验证提示 Oracle 的 YEAR/DAY leading precision 在部分目标语法中无对应位置;只去限定符,不改变 interval 字段族 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:306 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.binary_double | corpus/billing-demo/ddl/schema.sql:317 | BINARY_DOUBLE 类型:openGauss 6.0 A 模式 部分支持(既有 aggregate 探针显示类型可建;特殊值、精度与驱动映射建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 BINARY_DOUBLE 改写建议 保留 BINARY_DOUBLE 验证提示 映射 double precision;NaN/Infinity 的比较排序和驱动类型仍需单独验证 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:333 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:351 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:361 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:370 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | type | ora.type.raw_uuid_candidate | corpus/billing-demo/ddl/schema.sql:370 | RAW(16/32) UUID 候选:openGauss 6.0 A 模式 部分支持(原生 RAW 不应继承 PostgreSQL UUID/bytea 改写;建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 RAW(16) 改写建议 保留 RAW(16/32),仅值域确认是 UUID 时才另行改型 验证提示 这是候选识别而非自动判定;只有值域确为 SYS_GUID/UUID 时才改 uuid,否则仍应映射 bytea |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:381 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | object | ora.ddl.container_clauses | corpus/billing-demo/ddl/schema.sql:392 | CDB/多租户与排序规则 DDL 子句(SHARING / DEFAULT COLLATION / CONTAINER_MAP):openGauss 6.0 A 模式 不支持(无 CDB/容器概念;SHARING=/CONTAINER_MAP 等子句移除无语义损失 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 SHARING = METADATA 验证提示 Oracle 12c+ CDB/应用容器专属修饰,目标端无对应概念;源工具直接移除(unverified 证据级别),移除本身无业务语义损失 |
|||||
| opengauss:6.0:A | minor | object | ora.seq.order | corpus/billing-demo/ddl/schema.sql:437 | 序列 ORDER 属性:openGauss 6.0 A 模式 不支持(既有真机仅证明 ORDER 源语法被拒,未证明新割接 rewrite 等价;本条改用公开文档证据,建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CREATE SEQUENCE SEQ_PAY_LOG START WITH 100000001 INCREMENT BY 1 CACHE 100 ORDER 改写建议 SESSION 序列忽略 ORDER 并排除;普通 GLOBAL/NOSCALE/NOSHARD 冻结全部消费者,在每个源实例失效或放弃已预取 CACHE(否则停止源实例),确认任何实例不得恢复取号后,按 INCREMENT 与 MINVALUE/MAXVALUE/CYCLE 计算受控 NEXTVAL 后继并设为精确 next transition,LAST_NUMBER 不得单独作起点;SCALE/SHARD 走专用迁移或阻断,NOCYCLE 已耗尽须保留耗尽状态而非回绕 验证提示 判定条件:CREATE SEQUENCE 显式声明 ORDER,且业务确实依赖跨实例取号顺序;NOORDER 和仅要求唯一的序列不命中。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/ddl/schema.sql:462 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM SERV_INFO S, ACCT_INFO A 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | minor | object | ora.ddl.view_force | corpus/billing-demo/ddl/schema.sql:462 | CREATE FORCE VIEW:openGauss 6.0 A 模式 不支持(无 FORCE VIEW;依赖缺失时建视图直接失败,需部署依赖排序兜底 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 CREATE OR REPLACE FORCE VIEW 验证提示 源工具自动移除 FORCE/NO FORCE(clean_view_force_keyword,证据级别 verified_unsupported)。 语义损失点:FORCE 允许依赖缺失时先建 INVALID 视图,移除后建视图动作在依赖未就绪时直接失败, 部署顺序需依赖排序兜底
|
|||||
| opengauss:6.0:A | major | function | ora.func.harvest_ora2pg_substr_nonnegative | corpus/billing-demo/ddl/schema.sql:469 | SUBSTR 非负起点语义:openGauss 6.0 A 模式 部分支持(A 兼容模式文档提供本批 trim/length/ltrim/rtrim/instr/substr 字符函数;CHAR、空串、NULL、start=0 和多字节边界建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SUBSTR(CERT_NBR, 1, 6) 改写建议 SUBSTR(text,start[,len]) -> substring(text from start [for len]);orafce 目标可改 oracle.substr 验证提示 命中静态非负或符号未知的动态起点,仅与负整数字面量规则互斥;动态起点运行时可能为负,且 Oracle start=0 边界不同,必须人工复核 |
|||||
| opengauss:6.0:A | minor | object | ora.ddl.bequeath | corpus/billing-demo/ddl/schema.sql:469 | 视图 BEQUEATH 子句:openGauss 6.0 A 模式 不支持(无 BEQUEATH 子句;CURRENT_USER 视图回落 DEFINER 语义需权限复核 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 BEQUEATH CURRENT_USER 验证提示 源工具移除该子句但证据级别标 unverified;BEQUEATH CURRENT_USER 视图(调用者权限)被移除后回落 DEFINER 语义,涉及 VPD/权限敏感场景需人工确认 |
|||||
| opengauss:6.0:A | minor | object | ora.ddl.view_check_option | corpus/billing-demo/ddl/schema.sql:476 | 视图 WITH CHECK OPTION(含命名 CONSTRAINT):openGauss 6.0 A 模式 部分支持(WITH CHECK OPTION 支持情况待真库验证;命名 CONSTRAINT 子句大概率需去除) |
|
证据片段 WITH CHECK OPTION 验证提示 源工具三段式处理:目标 OB<4.2.5.7 整体移除;join 视图上的 CHECK OPTION 一律移除 (verified unsupported);"WITH CHECK OPTION CONSTRAINT <name>" 保留 CHECK OPTION、 仅去掉命名 CONSTRAINT 子句。移除即放弃写入校验语义,需在报告中显式标注
|
|||||
| opengauss:6.0:A | minor | object | ora.ddl.editionable | corpus/billing-demo/ddl/schema.sql:483 | EDITIONABLE / NONEDITIONABLE 关键字:openGauss 6.0 A 模式 不支持(无 edition 概念;EDITIONABLE/NONEDITIONABLE 关键字移除即可 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 EDITIONABLE 验证提示 DBMS_METADATA 导出的 VIEW/PLSQL/TRIGGER 头几乎必带;源工具全对象类型自动移除 (verified unsupported),无语义损失——除非源库真用了多 Edition 在线发布, 那属于发布流程改造。触发器头重写时注意别把 ON 关键字误当对象名
|
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/ddl/schema.sql:489 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM ACCT_BILL B, ACCT_INFO A 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | critical | object | ora.mview.auto_refresh | corpus/billing-demo/ddl/schema.sql:495 | 物化视图自动/增量刷新子句:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 CREATE MATERIALIZED VIEW 改写建议 改手工 REFRESH MATERIALIZED VIEW + 外部/库内调度 验证提示 对象本身可支持不代表 FAST/ON COMMIT/START WITH/NEXT 刷新链路可迁移;刷新日志与调度需分别盘点 |
|||||
| opengauss:6.0:A | major | object | ora.object.mview | corpus/billing-demo/ddl/schema.sql:495 | 物化视图(MATERIALIZED VIEW):openGauss 6.0 A 模式 不支持(支持物化视图(全量/增量刷新有约束);REFRESH FAST ON COMMIT 与 MV LOG 链路逐个评估 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 CREATE MATERIALIZED VIEW 验证提示 源工具将 MVIEW fixup 归为 manual family(兼容性随刷新方式与查询特性变化),且按目标版本门控(OB>=4.4.2 才自动纳入校验);REFRESH FAST/ON COMMIT/MV LOG 链路需逐个评估 |
|||||
| opengauss:6.0:A | major | object | ora.synonym.public | corpus/billing-demo/ddl/schema.sql:508 | PUBLIC 同义词:openGauss 6.0 A 模式 不支持(有 SYNONYM 对象;PUBLIC 同义词支持面待真库验证 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 CREATE PUBLIC SYNONYM 验证提示 源工具对 Oracle 源默认只管 PUBLIC 同义词(synonym_check_scope=public_only); 定义级对比覆盖 owner/目标对象/DBLINK/PUBLIC 边界。特别注意:目标 owner 为 PUBLIC 的 引用语义不确定,源工具按 manual-only 不自动生成替换 SQL
|
|||||
| opengauss:6.0:A | major | object | ora.synonym.public | corpus/billing-demo/ddl/schema.sql:509 | PUBLIC 同义词:openGauss 6.0 A 模式 不支持(有 SYNONYM 对象;PUBLIC 同义词支持面待真库验证 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 CREATE PUBLIC SYNONYM 验证提示 源工具对 Oracle 源默认只管 PUBLIC 同义词(synonym_check_scope=public_only); 定义级对比覆盖 owner/目标对象/DBLINK/PUBLIC 边界。特别注意:目标 owner 为 PUBLIC 的 引用语义不确定,源工具按 manual-only 不自动生成替换 SQL
|
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.select_into | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | SELECT INTO 单行基数异常语义:openGauss 6.0 A 模式 不支持(官方文档明确只有 INTO STRICT 才在零行/多行时抛异常;Oracle 原语句需补 STRICT,A 模式自动等价性尚无真机证据,建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT CYCLE_BEGIN, CYCLE_END INTO o_begin, o_end FROM BILL_CYCLE WHERE CYCLE_ID = p_month 改写建议 SELECT ... INTO STRICT ... 验证提示 Oracle 对 0 行和多行抛异常;PL/pgSQL 默认非 STRICT 会赋 NULL/取首行,必须显式 INTO STRICT 才保留异常契约 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.select_into | corpus/billing-demo/plsql/pkg_rate_engine.sql:26 | SELECT INTO 单行基数异常语义:openGauss 6.0 A 模式 不支持(官方文档明确只有 INTO STRICT 才在零行/多行时抛异常;Oracle 原语句需补 STRICT,A 模式自动等价性尚无真机证据,建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT UNIT_PRICE INTO v_price FROM PRICE_PLAN WHERE PLAN_ID = p_plan_id 改写建议 SELECT ... INTO STRICT ... 验证提示 Oracle 对 0 行和多行抛异常;PL/pgSQL 默认非 STRICT 会赋 NULL/取首行,必须显式 INTO STRICT 才保留异常契约 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | function | ora.func.harvest_ora2pg_substr_nonnegative | corpus/billing-demo/plsql/prc_credit_check.sql:2 | SUBSTR 非负起点语义:openGauss 6.0 A 模式 部分支持(A 兼容模式文档提供本批 trim/length/ltrim/rtrim/instr/substr 字符函数;CHAR、空串、NULL、start=0 和多字节边界建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SUBSTR(CUST_CODE, 1, 10) 改写建议 SUBSTR(text,start[,len]) -> substring(text from start [for len]);orafce 目标可改 oracle.substr 验证提示 命中静态非负或符号未知的动态起点,仅与负整数字面量规则互斥;动态起点运行时可能为负,且 Oracle start=0 边界不同,必须人工复核 |
|||||
| opengauss:6.0:A | minor | function | ora.func.to_number | corpus/billing-demo/plsql/prc_credit_check.sql:2 | TO_NUMBER 函数(格式模型与容错子句):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): 9,999.99 与 L9,999.99 可解析;DEFAULT ... ON CONVERSION ERROR 子句被拒,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_NUMBER(SUBSTR(CUST_CODE, 1, 10)) 改写建议 单参数清洗后显式 cast;格式串逐 token 处理 L/C/U/$ 货币、S/MI/PR 符号、V 缩放、EEEE 科学计数及 NLS;DEFAULT ON CONVERSION ERROR 只捕获 char 转数值错误,default 用同 fmt/NLS 再转且 default 自身失败继续报错,表达式求值错误不得吞掉 验证提示 判定条件:调用 TO_NUMBER;需区分单参数、完整数值格式/NLS 及 DEFAULT ON CONVERSION ERROR,并保留转换错误的精确捕获范围。 |
|||||
| opengauss:6.0:A | critical | syntax | ora.syntax.connect_by_function_operand | corpus/billing-demo/plsql/prc_credit_check.sql:2 | CONNECT BY 操作数含函数:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 START WITH CUST_ID = p_group_cust_id CONNECT BY PRIOR CUST_ID = TO_NUMBER(SUBSTR(CUST_CODE, 1, 10)) 改写建议 在非递归预处理 CTE 中计算父/子连接键别名,再让 CONNECT BY 或 WITH RECURSIVE 只连接预计算列;非确定函数不得重复求值 验证提示 判定条件:CONNECT BY 的 PRIOR 连接表达式含已登记函数;普通父子键连接不命中,复杂未知表达式继续 uncovered 而非外推。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/plsql/prc_credit_check.sql:2 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM ACCT_INFO A, MV_ACCT_OWE M 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.select_into | corpus/billing-demo/plsql/prc_credit_check.sql:2 | SELECT INTO 单行基数异常语义:openGauss 6.0 A 模式 不支持(官方文档明确只有 INTO STRICT 才在零行/多行时抛异常;Oracle 原语句需补 STRICT,A 模式自动等价性尚无真机证据,建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT CREDIT_AMOUNT INTO v_credit_amt FROM CREDIT_CONTROL WHERE ACCT_ID = p_group_cust_id 改写建议 SELECT ... INTO STRICT ... 验证提示 Oracle 对 0 行和多行抛异常;PL/pgSQL 默认非 STRICT 会赋 NULL/取首行,必须显式 INTO STRICT 才保留异常契约 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/plsql/prc_credit_check.sql:2 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.for_update_of | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | SELECT ... FOR UPDATE OF 列级锁定写法:openGauss 6.0 A 模式 部分支持(FOR UPDATE OF 为 PG 风格接表引用;Oracle 列引用写法需改写,锁范围需重审) |
|
证据片段 FOR UPDATE OF 验证提示 Oracle 的 OF 接"列名"(锁定该列所在表的行);PG 系 FOR UPDATE OF 接"表别名"——语法迁移必须把列改成表引用,多表连接场景锁范围需重审 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.select_into | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | SELECT INTO 单行基数异常语义:openGauss 6.0 A 模式 不支持(官方文档明确只有 INTO STRICT 才在零行/多行时抛异常;Oracle 原语句需补 STRICT,A 模式自动等价性尚无真机证据,建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT BALANCE, FROZEN_FEE INTO v_balance, v_frozen FROM ACCT_BALANCE WHERE ACCT_ID = p_acct_id FOR UPDATE OF BALANCE WAIT 5 改写建议 SELECT ... INTO STRICT ... 验证提示 Oracle 对 0 行和多行抛异常;PL/pgSQL 默认非 STRICT 会赋 NULL/取首行,必须显式 INTO STRICT 才保留异常契约 |
|||||
| opengauss:6.0:A | major | syntax | ora.syntax.returning_into | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | DML RETURNING ... INTO 子句:openGauss 6.0 A 模式 不支持(DML RETURNING 提供(PG 风格结果集);INTO 变量仅过程内可用,JDBC 取值路径需调整 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 RETURNING BALANCE INTO 验证提示 PG 系 RETURNING 子句无 INTO(结果作为结果集返回,PL/pgSQL 里才有 INTO);JDBC 侧 getGeneratedKeys/RETURNING 结果集两种取值路径需应用配合改 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/plsql/prc_month_rebill.sql:2 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM BILL_DETAIL D, ADJUST_LOG J 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.for_update_of | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | SELECT ... FOR UPDATE OF 列级锁定写法:openGauss 6.0 A 模式 部分支持(FOR UPDATE OF 为 PG 风格接表引用;Oracle 列引用写法需改写,锁范围需重审) |
|
证据片段 FOR UPDATE OF 验证提示 Oracle 的 OF 接"列名"(锁定该列所在表的行);PG 系 FOR UPDATE OF 接"表别名"——语法迁移必须把列改成表引用,多表连接场景锁范围需重审 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(SEQ_MSG_ID.NEXTVAL) 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | syntax | ora.syntax.where_current_of | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | WHERE CURRENT OF 游标定位 DML:openGauss 6.0 A 模式 不支持(游标定位 DML 改主键/唯一键定位) |
|
证据片段 WHERE CURRENT OF 验证提示 游标定位更新/删除需改为主键或稳定唯一键定位;若原逻辑依赖 ROWID,应连同 ROWID 规则一起改造。 |
|||||
| opengauss:6.0:A | major | object | ora.object.dblink_ref | corpus/billing-demo/plsql/prc_sync_crm_cust.sql:2 | DBLINK 引用(obj@link):openGauss 6.0 A 模式 部分支持(需 dblink 扩展,跨库事务不支持) |
|
证据片段 CRM_CUST_INFO@DBLINK_CRM 验证提示 源工具默认 view_dblink_policy=block:含 DBLINK 的 VIEW 不自动修补、单列风险报告 (VIEW_DBLINK_RESIDUAL)。实现时必须先掩码字符串字面量再匹配 @,否则邮箱等文本误报
|
|||||
| opengauss:6.0:A | major | function | ora.func.harvest_ora2pg_substr_nonnegative | corpus/billing-demo/plsql/prc_write_oplog.sql:3 | SUBSTR 非负起点语义:openGauss 6.0 A 模式 部分支持(A 兼容模式文档提供本批 trim/length/ltrim/rtrim/instr/substr 字符函数;CHAR、空串、NULL、start=0 和多字节边界建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SUBSTR(p_content, 1, 1000) 改写建议 SUBSTR(text,start[,len]) -> substring(text from start [for len]);orafce 目标可改 oracle.substr 验证提示 命中静态非负或符号未知的动态起点,仅与负整数字面量规则互斥;动态起点运行时可能为负,且 Oracle start=0 边界不同,必须人工复核 |
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.for_update_of | corpus/billing-demo/mapper/AcctBalanceMapper.xml:14 | SELECT ... FOR UPDATE OF 列级锁定写法:openGauss 6.0 A 模式 部分支持(FOR UPDATE OF 为 PG 风格接表引用;Oracle 列引用写法需改写,锁范围需重审) |
|
证据片段 FOR UPDATE OF 验证提示 Oracle 的 OF 接"列名"(锁定该列所在表的行);PG 系 FOR UPDATE OF 接"表别名"——语法迁移必须把列改成表引用,多表连接场景锁范围需重审 |
|||||
| opengauss:6.0:A | major | syntax | ora.syntax.merge_update_delete | corpus/billing-demo/mapper/AcctBalanceMapper.xml:53 | MERGE 的 UPDATE ... DELETE WHERE 组合子句:openGauss 6.0 A 模式 不支持(MERGE 支持;UPDATE 后 DELETE WHERE 组合子句待真库验证 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 WHEN MATCHED THEN UPDATE SET T.BALANCE = T.BALANCE - S.FEE DELETE WHERE 改写建议 若目标无 UPDATE 后 DELETE,则在同一事务锁定候选目标,执行 UPDATE 并把本次 UPDATE 命中且按更新后值满足删除条件的稳定键集合写入暂存表,再仅按该键集合 DELETE;任何一步失败整体回滚 验证提示 判定条件:MERGE 的 MATCHED UPDATE 后紧跟 DELETE WHERE;该谓词读取更新后值且只删除本次 UPDATE 命中行,必须保留原子范围与触发器顺序。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/mapper/AcctBalanceMapper.xml:65 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/AcctBalanceMapper.xml:83 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/AcctBalanceMapper.xml:115 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM ACCT_BALANCE B, ACCT_INFO A 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/AcctBalanceMapper.xml:126 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(CREATE_TIME, 'YYYYMM') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.function_wrapped_column | corpus/billing-demo/mapper/AcctBalanceMapper.xml:126 | 谓词中函数包裹列:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 TO_CHAR(CREATE_TIME, 'YYYYMM') = 验证提示 函数包列常导致普通索引失效;改写为列原生范围条件或补函数索引需结合目标优化器验证。 |
|||||
| opengauss:6.0:A | minor | function | ora.func.listagg | corpus/billing-demo/mapper/AcctBillMapper.xml:14 | LISTAGG 聚合函数:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): LISTAGG ... WITHIN GROUP 排序聚合等价;DISTINCT 报 cannot use DISTINCT with WITHIN GROUP,ON OVERFLOW TRUNCATE 语法被拒 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 LISTAGG(S.SERV_NBR, ',') WITHIN GROUP (ORDER BY S.SERV_NBR) 改写建议 按目标改字符串聚合并把 WITHIN GROUP 顺序放入聚合内部;DISTINCT 先显式去重,ON OVERFLOW ERROR/TRUNCATE 用长度检查或受控截断分支实现 验证提示 判定条件:调用 LISTAGG;需分别识别聚合/分析形态、DISTINCT、WITHIN GROUP 顺序和 ON OVERFLOW 契约。 |
|||||
| opengauss:6.0:A | major | function | ora.func.wm_concat | corpus/billing-demo/mapper/AcctBillMapper.xml:23 | WM_CONCAT 未公开聚合函数:openGauss 6.0 A 模式 部分支持(Whale 脚本定义 WM_CONCAT 聚合,但扩展加载、无序输出、NULL 和长度边界未验证;结论为 doc_based 草案,建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 WM_CONCAT(S.SERV_NBR) 改写建议 Whale 不可用时改 listagg/string_agg,并按业务键定义稳定顺序、取得业务确认,禁止承诺复现历史无序输出 验证提示 判定条件:源码调用未公开的 WM_CONCAT/wmsys.wm_concat;先确认业务只依赖值集合还是错误地依赖历史返回顺序。 |
|||||
| opengauss:6.0:A | major | function | ora.func.keep_dense_rank | corpus/billing-demo/mapper/AcctBillMapper.xml:31 | KEEP (DENSE_RANK FIRST/LAST) 聚合子句:openGauss 6.0 A 模式 不支持(既有真机仅证明 KEEP 源语法被拒;新 rewrite 仅基于公开窗口函数文档,未验证等价性,建议 PoC 复核并列、NULL 与窗口基数边界;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 KEEP (DENSE_RANK 改写建议 聚合形态用 DENSE_RANK 标出 FIRST/LAST 的 rank=1 集合,再对全部并列行执行原 MIN/MAX/SUM/AVG/COUNT/VARIANCE/STDDEV;analytic OVER 形态用窗口条件聚合保留每个输入行,禁止外层 GROUP BY 或 ROW_NUMBER/FIRST_VALUE 偷换基数 验证提示 判定条件:聚合函数后含 KEEP (DENSE_RANK FIRST|LAST ORDER BY ...);并列首/尾行必须作为集合继续执行原聚合,并区分分组聚合与 analytic OVER 窗口形态。 |
|||||
| opengauss:6.0:A | major | function | ora.func.xml_functions | corpus/billing-demo/mapper/AcctBillMapper.xml:47 | SQL/XML 函数族(XMLELEMENT / XMLAGG / XMLTABLE 等):openGauss 6.0 A 模式 不支持(继承 PG 的 SQL/XML 子集(xmlelement/xmlagg 等);XMLTYPE 对象方法与 Oracle 扩展子句无对应 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 XMLSERIALIZE( 验证提示 PG 系有 SQL/XML 标准子集(xmlelement/xmlagg/xmltable)但无 XMLTYPE 对象方法与 Oracle 扩展子句;XPath 方言与命名空间处理需逐条核对 |
|||||
| opengauss:6.0:A | major | function | ora.func.greatest_least | corpus/billing-demo/mapper/AcctBillMapper.xml:58 | GREATEST / LEAST 函数(NULL 传播差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): GREATEST(1,NULL,2)=2、LEAST(1,NULL,2)=1;Oracle 任一参数 NULL 即 NULL,存在静默语义差异 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial) |
|
证据片段 GREATEST( 验证提示 Oracle 任一参数为 NULL 即返回 NULL;PG 系忽略 NULL 取其余值——结果静默不同,含可空列的调用必须包 NVL/COALESCE 或改写 |
|||||
| opengauss:6.0:A | minor | function | ora.func.empty_lob | corpus/billing-demo/mapper/AcctBillMapper.xml:65 | EMPTY_CLOB / EMPTY_BLOB 函数:openGauss 6.0 A 模式 不支持(实测2026-07-09(og6.0.5): empty_clob() 函数不存在;empty_blob() 存在但 length(blob) 不支持,空 LOB 语义不可直接迁移) |
|
证据片段 EMPTY_CLOB( 验证提示 LOB 定位器初始化写法是 Oracle 特有(常配合 RETURNING INTO + DBMS_LOB 写入);目标端直接写空串/空 bytea 即可,但注意 Oracle 中空 LOB 与 NULL 不同、迁移后该区分消失 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/AcctBillMapper.xml:115 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM ACCT_BILL CUR, ACCT_BILL PREV 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/AcctBillMapper.xml:125 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/AcctBillMapper.xml:137 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM INVOICE_INFO I, ACCT_BILL B 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/ArchiveMapper.xml:7 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | critical | app_layer | ora.app.mybatis_dollar_object | corpus/billing-demo/mapper/ArchiveMapper.xml:7 | MyBatis ${} 拼接对象名(表名/FROM/JOIN 位):openGauss 6.0 A 模式 不支持(目标无关的应用层风险:${} 拼接无法静态评估兼容性且有注入面;改 #{} 绑定或白名单映射后才能完成评估) |
|
证据片段 INTO ARCH_BILL_DETAIL_${archMonth}验证提示 原文通道(raw_text)匹配 sample_text,不剥字面量——字符串里的同形文本会计入,按证据行人工排除。表名拼接(分月表/归档表)无法静态评估目标兼容性且有注入面;改白名单映射或 MyBatis-Plus 动态表名插件,禁止透传外部输入 |
|||||
| opengauss:6.0:A | critical | app_layer | ora.app.mybatis_dollar_object | corpus/billing-demo/mapper/ArchiveMapper.xml:18 | MyBatis ${} 拼接对象名(表名/FROM/JOIN 位):openGauss 6.0 A 模式 不支持(目标无关的应用层风险:${} 拼接无法静态评估兼容性且有注入面;改 #{} 绑定或白名单映射后才能完成评估) |
|
证据片段 FROM ${archTable}验证提示 原文通道(raw_text)匹配 sample_text,不剥字面量——字符串里的同形文本会计入,按证据行人工排除。表名拼接(分月表/归档表)无法静态评估目标兼容性且有注入面;改白名单映射或 MyBatis-Plus 动态表名插件,禁止透传外部输入 |
|||||
| opengauss:6.0:A | critical | syntax | ora.syntax.rowid_pseudocolumn | corpus/billing-demo/mapper/ArchiveMapper.xml:23 | ROWID 伪列引用:openGauss 6.0 A 模式 部分支持(研究结论:有弱 ROWID 兼容但语义不等价(物理地址跨库失效);按主键方案改造,支持面待真库验证) |
|
证据片段 ROWID 验证提示 物理行地址语义(常用于去重/批量更新定位/游标复位)无等价物;ctid 不稳定(VACUUM/更新会变)不能直接替代,需按用途改主键/唯一键方案 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.not_in_subquery | corpus/billing-demo/mapper/ArchiveMapper.xml:23 | NOT IN 子查询:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 NOT IN ( SELECT 验证提示 子查询列含 NULL 时 NOT IN 语义易踩坑;常改 NOT EXISTS 并补空值用例与执行计划验证。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/BillDetailMapper.xml:41 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM BILL_DETAIL BD, CUST_INFO CI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | minor | syntax | ora.hint.optimizer_hint | corpus/billing-demo/mapper/BillDetailMapper.xml:41 | Optimizer Hint(/*+ ... */):openGauss 6.0 A 模式 部分支持(实测2026-07-09(og6.0.5): Oracle 风格 /*+ leading(...) */ 可随 SQL EXPLAIN,但目标有自有 plan hint 体系,词表/效果不等价,需重写或删除后做性能回归) |
|
证据片段 /*+ INDEX(BD IDX_BILL_DETAIL_ACCT) FULL(CI) PARALLEL(BD 4) */ 验证提示 源工具用词法级过滤器(区分字符串/注释/q-quote)按白名单清洗:默认 keep_supported 策略, OB Oracle 模式约 60+ 个 hint 在白名单(APPEND/FULL/INDEX/LEADING/PARALLEL 系/NO_* 系等), 未知 hint 删除并采样上报。不兼容 hint 不报错但静默失效,性能回归需专项测
|
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/BillDetailMapper.xml:51 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM BILL_DETAIL BD, TARIFF_ITEM TI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/BillDetailMapper.xml:60 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(BD.BILL_DATE, 'YYYYMM') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.q_quote | corpus/billing-demo/mapper/BillDetailMapper.xml:92 | q 引号字面量(q'[...]'):openGauss 6.0 A 模式 部分支持(q'' 引号字面量 A 模式支持情况待真库验证;不支持时改 '' 转义或 $$ 引号) |
|
证据片段 q'[集团VIP客户(免催缴)]' 验证提示 改标准两个单引号转义或 PG 的 $$ 美元引号;单遍词法通道在注释剥离前识别 q/nq 引号并跳过普通字符串与注释 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/BillDetailMapper.xml:92 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM BILL_DETAIL BD, CUST_INFO CI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | behavior | ora.behavior.nls_dependent_conversion | corpus/billing-demo/mapper/BillDetailMapper.xml:101 | 单参数 TO_DATE/TO_TIMESTAMP(依赖会话 NLS 格式):openGauss 6.0 A 模式 部分支持(实测2026-07-09(og6.0.5): 单参数 TO_DATE('2024-02-03') 可解析;数据库/客户端编码均为 SQL_ASCII,无法验证 NLS_DATE_LANGUAGE/NLS_DATE_FORMAT 本地化语义,建议显式格式串;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_DATE(:p) 改写建议 字符参数按源 NLS 补显式格式;DATE/TIMESTAMP 参数若复现须显式 datetime→char→datetime 往返,移除转换属获批纠错;DEFAULT ON CONVERSION ERROR 只捕获文本转换,default 自身同格式失败继续报错,表达式求值错误不得吞掉 验证提示 判定条件:调用无显式格式的 TO_DATE/TO_TIMESTAMP;先查字符或 DATE/TIMESTAMP 参数,再保留 NLS、DEFAULT ON CONVERSION ERROR 和隐式往返边界。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:155 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.rownum_without_order | corpus/billing-demo/mapper/BillDetailMapper.xml:155 | ROWNUM 限制未伴随 ORDER BY:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 ROWNUM <= 10 改写建议 先补 ORDER BY 业务排序键和唯一稳定键,再用 FETCH FIRST n ROWS ONLY 或 ROW_NUMBER() 取 Top-N 验证提示 判定条件:业务把无 ORDER BY 的 ROWNUM Top-N 当作“最新、最大或固定首批”时结果不稳定;纯任意抽样可保留其非确定性。 |
|||||
| opengauss:6.0:A | major | function | ora.func.harvest_ora2pg_round_numeric_scale | corpus/billing-demo/mapper/BillDetailMapper.xml:167 | ROUND 数值精度参数改写:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 ROUND(BD.FEE / 100, 2) 改写建议 ROUND(number,n) -> round((number)::numeric,n);orafce 目标可改 oracle.round(number,n) 验证提示 第二参数限整数字面量、bind 或标识符并排除日期格式字符串;标识符仍可能是日期格式变量,需结合首参类型复核;首参支持两层括号嵌套 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/CommonMapper.xml:30 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(SYSDATE, 'YYYY-MM-DD HH24:MI:SS') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/CommonMapper.xml:83 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(SEQ_MSG_ID.NEXTVAL) 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/CustInfoMapper.xml:29 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/mapper/CustInfoMapper.xml:39 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/mapper/CustInfoMapper.xml:39 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/mapper/CustInfoMapper.xml:39 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/mapper/CustInfoMapper.xml:39 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/mapper/CustInfoMapper.xml:39 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/mapper/CustInfoMapper.xml:39 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/mapper/CustInfoMapper.xml:39 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/mapper/CustInfoMapper.xml:39 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | major | function | ora.func.nvl2 | corpus/billing-demo/mapper/CustInfoMapper.xml:67 | NVL2 函数兼容性:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 Whale 在 A 库提供 NVL2 定义,但扩展加载、隐式类型归并和 NULL 边界尚未真机验证;结论为 doc_based 草案,建议 PoC 复核 【本批真机验证边界】 本批真机 实际执行 探针被目标库明确拒绝:错误码与输出见证据工件;本结论仅证明所列人工代表性 fixture 被拒绝,不外推未覆盖变体;未覆盖的自动变体及其处置见证据工件) |
|
证据片段 NVL2(CONTACT_PHONE, '已登记', '未登记') 改写建议 未加载 Whale 时改 CASE WHEN {0} IS NOT NULL THEN {1} ELSE {2} END 验证提示 验证参数为 NULL 时与隐式类型转换行为 |
|||||
| opengauss:6.0:A | major | function | ora.func.nlssort | corpus/billing-demo/mapper/CustInfoMapper.xml:75 | NLSSORT 函数(语言排序规则):openGauss 6.0 A 模式 不支持(实测2026-07-09(og6.0.5): NLSSORT('abc','NLS_SORT=BINARY') 报 Sort method ... is not supported;Oracle NLS_SORT 表达式需改目标排序规则方案) |
|
证据片段 NLSSORT( 验证提示 常见于中文拼音/笔画排序(NLS_SORT=SCHINESE_PINYIN_M);目标端需用对应 collation(如 zh_CN 相关 ICU/系统排序规则)改写 ORDER BY ... COLLATE,排序结果必须抽样对照 |
|||||
| opengauss:6.0:A | major | function | ora.func.byte_semantics | corpus/billing-demo/mapper/CustInfoMapper.xml:89 | LENGTHB / SUBSTRB / INSTRB 字节语义函数:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): ASCII lengthb/substrb 可用;库编码 SQL_ASCII,中文/多字节字节切分语义无法验证,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial) |
|
证据片段 LENGTHB( 验证提示 字节语义函数与源库字符集强耦合(GBK 汉字 2 字节 / UTF8 3 字节):迁移常伴随字符集变化,等价改写(octet_length 等)后原有截断/校验逻辑的字节数会变,需业务确认 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/mapper/CustInfoMapper.xml:96 | LIKE 前导通配符:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| opengauss:6.0:A | critical | app_layer | ora.app.mybatis_dollar_orderby | corpus/billing-demo/mapper/CustInfoMapper.xml:152 | MyBatis ${} 拼接排序/分组列(ORDER BY/GROUP BY 位):openGauss 6.0 A 模式 不支持(目标无关的应用层风险:${} 拼接无法静态评估兼容性且有注入面;改 #{} 绑定或白名单映射后才能完成评估) |
|
证据片段 ORDER BY ${sortColumn}验证提示 原文通道(raw_text)匹配 sample_text;排序列拼接是注入高发位(前端传列名直拼),且列名/排序方向无法静态校验。改列名白名单 + 方向枚举校验;与 mybatis_dollar_object 规则按位置分工不重复计 |
|||||
| opengauss:6.0:A | minor | function | ora.func.lnnvl | corpus/billing-demo/mapper/OweBillMapper.xml:15 | LNNVL 函数:openGauss 6.0 A 模式 不支持(文档未见 lnnvl;改写必须保留三值逻辑 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 LNNVL( 改写建议 (NOT cond OR cond IS NULL) 验证提示 LNNVL(cond) = "cond 为 FALSE 或 UNKNOWN",改写必须用 (NOT cond OR cond IS NULL) 形式完整保留三值逻辑,直接取反会丢 NULL 分支 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:23 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, SERV_INFO S 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:33 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, CRM_CUST_MANAGER 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | object | ora.object.dblink_ref | corpus/billing-demo/mapper/OweBillMapper.xml:33 | DBLINK 引用(obj@link):openGauss 6.0 A 模式 部分支持(需 dblink 扩展,跨库事务不支持) |
|
证据片段 CRM_CUST_MANAGER@DBLINK_CRM 验证提示 源工具默认 view_dblink_policy=block:含 DBLINK 的 VIEW 不自动修补、单列风险报告 (VIEW_DBLINK_RESIDUAL)。实现时必须先掩码字符串字面量再匹配 @,否则邮箱等文本误报
|
|||||
| opengauss:6.0:A | major | function | ora.func.harvest_ora2pg_round_numeric_scale | corpus/billing-demo/mapper/OweBillMapper.xml:42 | ROUND 数值精度参数改写:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 ROUND(MONTHS_BETWEEN(SYSDATE, OWE_DATE), 1) 改写建议 ROUND(number,n) -> round((number)::numeric,n);orafce 目标可改 oracle.round(number,n) 验证提示 第二参数限整数字面量、bind 或标识符并排除日期格式字符串;标识符仍可能是日期格式变量,需结合首参类型复核;首参支持两层括号嵌套 |
|||||
| opengauss:6.0:A | minor | function | ora.func.months_between | corpus/billing-demo/mapper/OweBillMapper.xml:42 | MONTHS_BETWEEN 函数:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 Whale 脚本提供 MONTHS_BETWEEN,但它属于 A 库可选扩展而非已验证内核基线;结论为 doc_based 草案,月末规则、精度和 NLS 行为建议 PoC 复核 【本批真机验证边界】 本批真机 实际执行 探针被目标库明确拒绝:错误码与输出见证据工件;本结论仅证明所列人工代表性 fixture 被拒绝,不外推未覆盖变体;未覆盖的自动变体及其处置见证据工件;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 MONTHS_BETWEEN(SYSDATE, OWE_DATE) 改写建议 先读取 NLS_CALENDAR 并算有符号整月差;同日号/双月末直接返回整数,否则加 (日号差+秒内时间差/86400)/31,禁止用实际日期相减重复计入整月;非公历走专用实现 验证提示 判定条件:调用 MONTHS_BETWEEN(d1,d2);月和月末来自 NLS_CALENDAR,同日号/双月末返回整数,否则按日号与时间分量除以 31。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/mapper/OweBillMapper.xml:57 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | minor | function | ora.func.next_day | corpus/billing-demo/mapper/OweBillMapper.xml:57 | NEXT_DAY 函数:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): NEXT_DAY(date '2024-01-01','MONDAY') 返回 2024-01-08;库编码 SQL_ASCII,中文/本地化星期名未覆盖,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 NEXT_DAY(TRUNC(SYSDATE, 'DD'), '星期一') 改写建议 按源 NLS_DATE_LANGUAGE 读取最短有效星期缩写并忽略其尾随字符,规范为 0..6;计算 delta=((target-current+6) mod 7)+1,加回到秒时间后 cast 到目标 Oracle-DATE 映射以返回 DATE 验证提示 判定条件:调用 NEXT_DAY(date, weekday);weekday 依赖 NLS_DATE_LANGUAGE、有效缩写后的字符会被忽略、结果严格晚于输入且总是返回 DATE。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/OweBillMapper.xml:82 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/OweBillMapper.xml:93 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:116 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, ACCT_INFO A 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:126 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, CREDIT_CONTROL C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:126 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, CREDIT_CONTROL C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:126 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, CREDIT_CONTROL C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:126 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, CREDIT_CONTROL C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:126 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, CREDIT_CONTROL C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:126 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, CREDIT_CONTROL C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:126 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, CREDIT_CONTROL C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:126 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, CREDIT_CONTROL C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:139 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, ACCT_INFO A 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/OweBillMapper.xml:139 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM OWE_BILL O, ACCT_INFO A 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/PayLogMapper.xml:7 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(SEQ_PAY_LOG.NEXTVAL) 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | minor | function | ora.func.sys_guid | corpus/billing-demo/mapper/PayLogMapper.xml:21 | SYS_GUID 函数:openGauss 6.0 A 模式 不支持(sys_guid 支持情况待真库验证;不支持时改 uuid 系函数并连同列类型调整 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 SYS_GUID() 验证提示 返回 RAW(16);目标端 UUID 函数返回带连字符的 uuid 文本,长度与格式不同,作主键/存储时需连同列类型与应用侧解析一起改 |
|||||
| opengauss:6.0:A | minor | function | ora.func.to_number | corpus/billing-demo/mapper/PayLogMapper.xml:26 | TO_NUMBER 函数(格式模型与容错子句):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): 9,999.99 与 L9,999.99 可解析;DEFAULT ... ON CONVERSION ERROR 子句被拒,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_NUMBER(:p, '999999990.99') 改写建议 单参数清洗后显式 cast;格式串逐 token 处理 L/C/U/$ 货币、S/MI/PR 符号、V 缩放、EEEE 科学计数及 NLS;DEFAULT ON CONVERSION ERROR 只捕获 char 转数值错误,default 用同 fmt/NLS 再转且 default 自身失败继续报错,表达式求值错误不得吞掉 验证提示 判定条件:调用 TO_NUMBER;需区分单参数、完整数值格式/NLS 及 DEFAULT ON CONVERSION ERROR,并保留转换错误的精确捕获范围。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/PayLogMapper.xml:31 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(CHANNEL_ID) 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | minor | function | ora.func.pad | corpus/billing-demo/mapper/PayLogMapper.xml:31 | LPAD / RPAD 函数(NULL 与多字节行为):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): ASCII LPAD/RPAD 与空 pad 串返回 NULL 等价;库编码 SQL_ASCII,无法验证 CJK 显示宽度计长,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial) |
|
证据片段 LPAD( 验证提示 函数本身普遍存在;差异在 Oracle 按显示宽度计长(多字节字符占 2)且 pad 串为空串时返回 NULL——多字节定宽报表输出必测 |
|||||
| opengauss:6.0:A | minor | function | ora.func.interval_conversion | corpus/billing-demo/mapper/PayLogMapper.xml:45 | NUMTOYMINTERVAL / NUMTODSINTERVAL / TO_YMINTERVAL / TO_DSINTERVAL:openGauss 6.0 A 模式 部分支持(实测2026-07-09(og6.0.5): NUMTODSINTERVAL 支持 DAY/HOUR/MINUTE;NUMTOYMINTERVAL(integer,'YEAR') 函数不存在) |
|
证据片段 NUMTODSINTERVAL( 验证提示 常见于 INTERVAL 分区定义与日期偏移计算;PG 系改 make_interval 或 interval 字面量乘法,注意月/日不可混算的 Oracle 约束在目标端放宽后行为变化 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/PayLogMapper.xml:53 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/PayLogMapper.xml:82 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(PAY_TIME, 'YYYYMMDD') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.function_wrapped_column | corpus/billing-demo/mapper/PayLogMapper.xml:82 | 谓词中函数包裹列:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 TO_CHAR(PAY_TIME, 'YYYYMMDD') = 验证提示 函数包列常导致普通索引失效;改写为列原生范围条件或补函数索引需结合目标优化器验证。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/mapper/PayLogMapper.xml:90 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/PayLogMapper.xml:90 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM PAY_LOG P, CHANNEL_INFO C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/mapper/PayLogMapper.xml:90 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/PayLogMapper.xml:90 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM PAY_LOG P, CHANNEL_INFO C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/mapper/PayLogMapper.xml:90 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/PayLogMapper.xml:90 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM PAY_LOG P, CHANNEL_INFO C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/PayLogMapper.xml:103 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(SEQ_PAY_LOG.NEXTVAL) 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/PayLogMapper.xml:103 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(SEQ_PAY_LOG.NEXTVAL) 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/mapper/PayLogMapper.xml:132 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/PayLogMapper.xml:161 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(P.PAY_TIME, 'YYYYMMDD') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/PayLogMapper.xml:161 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM PAY_LOG P, CHANNEL_INFO C 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.function_wrapped_column | corpus/billing-demo/mapper/PayLogMapper.xml:161 | 谓词中函数包裹列:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 TO_CHAR(P.PAY_TIME, 'YYYYMMDD') = 验证提示 函数包列常导致普通索引失效;改写为列原生范围条件或补函数索引需结合目标优化器验证。 |
|||||
| opengauss:6.0:A | major | function | ora.func.regexp_replace | corpus/billing-demo/mapper/ServInfoMapper.xml:14 | REGEXP_REPLACE 函数(默认全局替换语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): 默认只替换首个匹配(abc#def456),Oracle 默认全量替换;显式 occurrence=0 才得到全量替换 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 REGEXP_REPLACE(SERV_NBR, '(1[0-9]{2})[0-9]{4}([0-9]{4})', '\1****\2')改写建议 默认 occurrence=0 映射目标全局 flag;指定 occurrence 时只替第 N 个匹配,必要时拆前缀/目标匹配/后缀;同步转换反向引用和 flags 验证提示 判定条件:调用 REGEXP_REPLACE;需区分默认全局替换、指定 occurrence、position、match_param 和反向引用语法。 |
|||||
| opengauss:6.0:A | minor | function | ora.func.regexp_substr | corpus/billing-demo/mapper/ServInfoMapper.xml:22 | REGEXP_SUBSTR 函数:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): occurrence 参数可用;6 参 subexpr 形态报 function regexp_substr(...) does not exist,捕获组提取需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;本结论来自人工代表性 fixture,未覆盖的自动变体及其处置见证据工件;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 REGEXP_SUBSTR(SERV_ATTR, '[^;]+', 1, :p) 改写建议 目标同名函数参数逐位映射;无 subexpr 能力时先取第 occurrence 个 match 再提捕获组,固定分隔符拆列场景可改 split_part 验证提示 判定条件:调用 REGEXP_SUBSTR;需保留 position、occurrence、match_param、subexpr 和未命中返回 NULL 的契约。 |
|||||
| opengauss:6.0:A | minor | function | ora.func.regexp_instr_count | corpus/billing-demo/mapper/ServInfoMapper.xml:29 | REGEXP_INSTR / REGEXP_COUNT 函数:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): regexp_count 与 regexp_instr return_opt 可用;regexp_instr 的 subexpr 形态报函数不存在 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 REGEXP_COUNT( 改写建议 REGEXP_INSTR 映射 position/occurrence/return_opt/subexpr 后返回 1 基位置或 0;REGEXP_COUNT 映射起始位和 flags,缺同名能力时枚举匹配计数 验证提示 判定条件:调用 REGEXP_INSTR 或 REGEXP_COUNT;需区分返回位置与计数,并保留 position、occurrence、return_opt、flags、subexpr。 |
|||||
| opengauss:6.0:A | major | syntax | ora.syntax.table_collection | corpus/billing-demo/mapper/ServInfoMapper.xml:36 | TABLE() 集合表表达式:openGauss 6.0 A 模式 部分支持(TABLE() 集合表表达式支持情况待真库验证;可改 unnest/SETOF 函数调用) |
|
证据片段 FROM TABLE( 验证提示 集合/管道函数展开为行集的写法,TABLE(THE(...)) 旧式集合表表达式也需同族改造;PG 系改 unnest(数组) 或直接调用返回 SETOF 的函数,与集合类型改造(VARRAY/嵌套表)联动 |
|||||
| opengauss:6.0:A | minor | syntax | ora.syntax.sample | corpus/billing-demo/mapper/ServInfoMapper.xml:45 | SAMPLE 采样子句:openGauss 6.0 A 模式 不支持(Oracle SAMPLE 子句语法不支持;TABLESAMPLE 支持情况随版本待核 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 SAMPLE (5 改写建议 TABLESAMPLE SYSTEM (n) 验证提示 改 TABLESAMPLE SYSTEM/BERNOULLI(PG 系语法位置与百分比参数含义一致但关键字不同);SAMPLE BLOCK 双参数/SEED 可重现采样的支持面需核对 |
|||||
| opengauss:6.0:A | minor | function | ora.func.dbms_random | corpus/billing-demo/mapper/ServInfoMapper.xml:52 | DBMS_RANDOM 包调用:openGauss 6.0 A 模式 部分支持(Whale 脚本提供 GMS_RANDOM 兼容包而非已验证的同名 DBMS_RANDOM 全接口;结论为 doc_based 草案,SEED、STRING 和分布语义建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 DBMS_RANDOM.VALUE 改写建议 优先评估 Whale gms_random;未覆盖接口再改 random() 组合表达式 验证提示 VALUE/STRING/NORMAL 按目标端 random()/gen 系函数逐个映射;SEED 可重现语义(测试数据生成场景)多数目标无对应,需评估用途 |
|||||
| opengauss:6.0:A | major | function | ora.func.sys_context | corpus/billing-demo/mapper/ServInfoMapper.xml:61 | SYS_CONTEXT 函数:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 官方文档提供 session_context('USERENV',...);SYS_CONTEXT 同名兼容与自定义命名空间待真库验证 【本批真机验证边界】 本批真机 实际执行 探针被目标库明确拒绝:错误码与输出见证据工件;本结论仅证明所列人工代表性 fixture 被拒绝,不外推未覆盖变体;未覆盖的自动变体及其处置见证据工件 【本批真机验证边界】 本批真机 EXPLAIN 探针被目标库明确拒绝:错误码与输出见证据工件;本结论仅证明所列人工代表性 fixture 被拒绝,不外推未覆盖变体;未覆盖的自动变体及其处置见证据工件) |
|
证据片段 SYS_CONTEXT('USERENV', 'SESSION_USER')改写建议 session_context('USERENV', ...) 验证提示 USERENV 命名空间的常用键(SESSION_USER/CURRENT_SCHEMA/IP_ADDRESS 等)各目标支持面不同;自定义 context(DBMS_SESSION.SET_CONTEXT)基本无对应,需应用层改造 |
|||||
| opengauss:6.0:A | minor | function | ora.func.systimestamp | corpus/billing-demo/mapper/ServInfoMapper.xml:68 | SYSTIMESTAMP 伪函数:openGauss 6.0 A 模式 部分支持(systimestamp 支持情况待真库验证;可退 clock_timestamp 语义核对) |
|
证据片段 SYSTIMESTAMP 验证提示 返回 TIMESTAMP WITH TIME ZONE 且为语句级实时值;与 CURRENT_TIMESTAMP(事务开始时刻)的取值时点差异需评估 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/ServInfoMapper.xml:74 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/ServInfoMapper.xml:108 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM SERV_PROD_REL R, PROD_OFFER P 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.harvest_ora2pg_instr_two_arg | corpus/billing-demo/mapper/ServInfoMapper.xml:154 | INSTR 二参数改写:openGauss 6.0 A 模式 部分支持(A 兼容模式文档提供本批 trim/length/ltrim/rtrim/instr/substr 字符函数;CHAR、空串、NULL、start=0 和多字节边界建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 INSTR(SERV_ATTR, '') 改写建议 INSTR(text,needle) -> position(needle in text);orafce 目标可改 oracle.instr(text,needle) 验证提示 只命中恰好两个顶层参数,与既有 INSTR 三/四参数规则互斥;支持两层括号嵌套,含顶层逗号的复杂字面量仍需人工补充 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/StatReportMapper.xml:7 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 1 - LEVEL), 'YYYYMM') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/mapper/StatReportMapper.xml:7 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'MM') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/mapper/StatReportMapper.xml:42 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(BD.BILL_DATE) 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | major | syntax | ora.syntax.insert_all | corpus/billing-demo/mapper/StatReportMapper.xml:42 | INSERT ALL / INSERT FIRST 多表插入:openGauss 6.0 A 模式 不支持(未见多表 INSERT ALL/FIRST 支持,待真库复核;INSERT FIRST 命中即止语义拆写后需验证 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 INSERT ALL 改写建议 拆多条 INSERT ... SELECT 验证提示 拆分为多条 INSERT ... SELECT 或 CTE 改写;INSERT FIRST 的"命中即止"分支语义与 WHEN 条件求值顺序必须用重叠条件用例验证 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/StatReportMapper.xml:42 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM BILL_DETAIL BD, TARIFF_ITEM TI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | syntax | ora.syntax.pivot | corpus/billing-demo/mapper/StatReportMapper.xml:56 | PIVOT / UNPIVOT 子句:openGauss 6.0 A 模式 不支持(未见 PIVOT/UNPIVOT 语法支持,待真库复核 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 PIVOT ( 改写建议 条件聚合(CASE + GROUP BY) 验证提示 改条件聚合(CASE + GROUP BY)或 crosstab 类方案;PIVOT 聚合项双层括号形态需单独核对;PIVOT 列数是静态枚举的,改写后新增枚举值不再自动出列,需与业务确认 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/StatReportMapper.xml:56 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/StatReportMapper.xml:56 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM BILL_DETAIL BD, TARIFF_ITEM TI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/StatReportMapper.xml:76 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(ADD_MONTHS(SYSDATE, -1), 'YYYYMM') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | function | ora.func.trunc | corpus/billing-demo/mapper/StatReportMapper.xml:76 | TRUNC 函数(日期截断语义):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): TRUNC(timestamp,'MM') 等价;TRUNC(date,'IW') 报 timestamp units "iw" not recognized,ISO 周截断需改写 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TRUNC(ADD_MONTHS(SYSDATE, -1), 'MM') 改写建议 日期 DD/MM/IW 等映射目标截断;W 以月首同星期、WW 以年首同星期、D 按 NLS_TERRITORY 周首重建,最后 cast 到目标 Oracle-DATE 映射以返回 DATE;数值按 scale 截断 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| opengauss:6.0:A | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/StatReportMapper.xml:126 | SELECT * 投影:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/StatReportMapper.xml:138 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(STAT_DATE, 'YYYYMM') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.function_wrapped_column | corpus/billing-demo/mapper/StatReportMapper.xml:138 | 谓词中函数包裹列:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 TO_CHAR(STAT_DATE, 'YYYY') = 验证提示 函数包列常导致普通索引失效;改写为列原生范围条件或补函数索引需结合目标优化器验证。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/StatReportMapper.xml:147 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(STAT_DATE, 'YYYYMM') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.function_wrapped_column | corpus/billing-demo/mapper/StatReportMapper.xml:147 | 谓词中函数包裹列:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 TO_CHAR(STAT_DATE, 'YYYYMM') = 验证提示 函数包列常导致普通索引失效;改写为列原生范围条件或补函数索引需结合目标优化器验证。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/StatReportMapper.xml:175 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 FROM ACCT_BILL B, USAGE_MONTH_SUM S 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| opengauss:6.0:A | major | function | ora.func.to_char | corpus/billing-demo/mapper/StatReportMapper.xml:185 | TO_CHAR 函数(日期/数值格式模型差异):openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): timestamp YYYY-MM-DD HH24:MI:SS、数值 FM9,999.00、MONTH 输出通过;库编码 SQL_ASCII,无法覆盖本地化月份/星期与 NLS 参数,保留 partial 【本批真机验证边界】 本批真机 EXPLAIN 通过:仅证明代表 SQL 的语法与计划受理,不证明行为一致;本批证据结论不超过 partial;目标支持面已有验证,但规则级改写建议未被该验证覆盖,建议以 PoC 复核) |
|
证据片段 TO_CHAR(STAT_DATE, 'YYYYMM') 改写建议 数值映射数值模型;DATE/TIMESTAMP 映射日期模型;TIMESTAMP WITH LOCAL TIME ZONE 先按源 session time zone 展示;INTERVAL 单参数保留 literal 数字表示、带格式时逐元素重建;同步映射 TZR/TZD、FF 小数秒和 NLS 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| opengauss:6.0:A | major | performance | ora.perf.function_wrapped_column | corpus/billing-demo/mapper/StatReportMapper.xml:185 | 谓词中函数包裹列:源 SQL 存在静态风险(与 openGauss 6.0 A 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分) |
|
证据片段 TO_CHAR(STAT_DATE, 'YYYYMM') = 验证提示 函数包列常导致普通索引失效;改写为列原生范围条件或补函数索引需结合目标优化器验证。 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.object_type | corpus/billing-demo/ddl/schema.sql:423 | 对象类型(CREATE TYPE ... AS OBJECT / MEMBER 方法):openGauss 6.0 A 模式 不支持(未见对象类型方法/继承支持,待真库复核;复合类型仅结构无行为) |
|
证据片段 object_type_usage 验证提示 对象类型的方法/继承(UNDER/OVERRIDING)/构造器无对应能力;TYPE BODY、NEW 构造器、PERSISTABLE 修饰、SYS_TYPEID/TREAT 等关联形态按同族复核;PG 系复合类型只有结构没有行为,方法需拆为独立函数,继承体系需重新设计 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.trigger_new_old | corpus/billing-demo/ddl/schema.sql:516 | 触发器 :NEW/:OLD 冒号引用语法:openGauss 6.0 A 模式 部分支持(A 兼容触发器语法面待真库验证;兜底改造路径为 PG 风格触发器函数 + NEW./OLD.(无冒号)) |
|
证据片段 trigger_correlation_reference 改写建议 :NEW/:OLD 改触发器函数内 NEW/OLD,并把触发器体拆为独立函数 验证提示 PG 系触发器函数内为 NEW./OLD.(无冒号)且触发器体要拆成独立函数;触发器整体改造时用"插入→触发→断言审计行"用例回归,REFERENCING 重命名形态纳入触发器族检测 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.trigger_new_old | corpus/billing-demo/ddl/schema.sql:527 | 触发器 :NEW/:OLD 冒号引用语法:openGauss 6.0 A 模式 部分支持(A 兼容触发器语法面待真库验证;兜底改造路径为 PG 风格触发器函数 + NEW./OLD.(无冒号)) |
|
证据片段 trigger_correlation_reference 改写建议 :NEW/:OLD 改触发器函数内 NEW/OLD,并把触发器体拆为独立函数 验证提示 PG 系触发器函数内为 NEW./OLD.(无冒号)且触发器体要拆成独立函数;触发器整体改造时用"插入→触发→断言审计行"用例回归,REFERENCING 重命名形态纳入触发器族检测 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.package | corpus/billing-demo/plsql/pkg_bill_common.sql:2 | PL/SQL 包(包级变量 / 初始化块):openGauss 6.0 A 模式 部分支持(包语法子集,包变量/初始化块差异需人工确认) |
|
证据片段 package_var 验证提示 包变量是会话级状态、初始化块在首次引用时执行——拆为 schema+函数后需用会话级临时表/配置表/应用层缓存承载状态,连接池复用连接时的状态串扰是最大风险 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.pipelined | corpus/billing-demo/plsql/pkg_bill_common.sql:2 | PIPELINED 管道表函数:openGauss 6.0 A 模式 不支持(未见 PIPELINED 管道函数支持,待真库复核;流式返回语义改物化返回) |
|
证据片段 pipelined 改写建议 SETOF 函数 + RETURN NEXT/QUERY 验证提示 改 RETURNS SETOF/TABLE 函数(PG 系 RETURN NEXT/RETURN QUERY);流式返回(边算边出)在目标端多为物化后返回,大结果集内存与首行延迟需实测 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.nested_table | corpus/billing-demo/plsql/pkg_bill_common.sql:2 | 嵌套表集合类型(TABLE OF):openGauss 6.0 A 模式 部分支持(TABLE OF 集合类型子集;多维/嵌套边界待核) |
|
证据片段 nested_table 验证提示 PL/SQL 内的嵌套表改数组/临时表;作为列类型的嵌套表(存储形态)另由 udt_column 对象规则承载,两者改造方案不同勿混 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.varray | corpus/billing-demo/plsql/pkg_bill_common.sql:2 | VARRAY 变长数组类型:openGauss 6.0 A 模式 部分支持(VARRAY 语法兼容情况待真库验证;可改数组类型,上限约束需补偿) |
|
证据片段 varray 验证提示 上限约束(VARRAY(n))在目标端数组上消失,依赖越界报错的校验逻辑需补应用层检查;LIMIT/EXTEND 集合方法逐个映射 |
|||||
| opengauss:6.0:A | major | type | ora.type.plsql_boolean | corpus/billing-demo/plsql/pkg_bill_common.sql:2 | PL/SQL BOOLEAN 类型:openGauss 6.0 A 模式 部分支持(过程内 BOOLEAN 支持面与 SQL/驱动边界建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 plsql_boolean_type 改写建议 BOOLEAN -> boolean(仅过程内部直接映射) 验证提示 过程内部变量可映射 boolean;若 BOOLEAN 穿过 SQL、包接口或 JDBC 边界,调用契约需单独改造 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.deterministic | corpus/billing-demo/plsql/pkg_bill_common.sql:2 | DETERMINISTIC 函数标记:openGauss 6.0 A 模式 部分支持(DETERMINISTIC 语法兼容待真库验证;语义近似 IMMUTABLE,函数体真确定性需人工确认) |
|
证据片段 deterministic 验证提示 近似映射 IMMUTABLE,但语义更强(结果参与计划缓存/索引):先人工确认函数体真幂等(无 SYSDATE/序列/查表),再打标——错误的 IMMUTABLE 会导致静默错果 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.package | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | PL/SQL 包(包级变量 / 初始化块):openGauss 6.0 A 模式 部分支持(包语法子集,包变量/初始化块差异需人工确认) |
|
证据片段 package_init_block, package_var 验证提示 包变量是会话级状态、初始化块在首次引用时执行——拆为 schema+函数后需用会话级临时表/配置表/应用层缓存承载状态,连接池复用连接时的状态串扰是最大风险 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.pipelined | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | PIPELINED 管道表函数:openGauss 6.0 A 模式 不支持(未见 PIPELINED 管道函数支持,待真库复核;流式返回语义改物化返回) |
|
证据片段 pipelined 改写建议 SETOF 函数 + RETURN NEXT/QUERY 验证提示 改 RETURNS SETOF/TABLE 函数(PG 系 RETURN NEXT/RETURN QUERY);流式返回(边算边出)在目标端多为物化后返回,大结果集内存与首行延迟需实测 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.predefined_exceptions | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | Oracle 预定义异常名称:openGauss 6.0 A 模式 部分支持(公开错误码表只证明 NO_DATA_FOUND、TOO_MANY_ROWS、CASE_NOT_FOUND 等部分同名条件;Oracle 预定义异常全集需逐项 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 predefined_exception 改写建议 按目标 condition 名或 SQLSTATE 重写异常分支 验证提示 只匹配需核对的 Oracle 预定义异常集合;按目标 condition 名或 SQLSTATE 映射,禁止沿用 Oracle 数值错误码 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.trunc_call | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | PL/SQL 表达式中的 TRUNC 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 trunc_call 改写建议 日期按单位改 date_trunc/锚点表达式并恢复返回类型;数值按 scale 截断 验证提示 只定位过程表达式调用;日期/数值重载、格式单位与 NLS 仍需建议 PoC 复核 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.last_day_call | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | PL/SQL 表达式中的 LAST_DAY 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 last_day_call 改写建议 公历用下月月首减一天并恢复源时间;非公历使用受控兼容实现 验证提示 NLS_CALENDAR、时间部分和 DATE 返回契约需建议 PoC 复核 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.to_char_call | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | PL/SQL 表达式中的 TO_CHAR 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 to_char_call 改写建议 按数值、日期时间、时区和 INTERVAL 分流后逐格式 token 映射 验证提示 参数类型、格式模型、NLS、时区与 INTERVAL 需建议 PoC 复核 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.deterministic | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | DETERMINISTIC 函数标记:openGauss 6.0 A 模式 部分支持(DETERMINISTIC 语法兼容待真库验证;语义近似 IMMUTABLE,函数体真确定性需人工确认) |
|
证据片段 deterministic 验证提示 近似映射 IMMUTABLE,但语义更强(结果参与计划缓存/索引):先人工确认函数体真幂等(无 SYSDATE/序列/查表),再打标——错误的 IMMUTABLE 会导致静默错果 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.exception_block | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | EXCEPTION 异常处理块:openGauss 6.0 A 模式 部分支持(EXCEPTION 块提供;隐式子事务开销与 Oracle 语句级回滚差异需在热点路径评估) |
|
证据片段 exception_block 验证提示 语法普遍兼容,差异在两处:PG 系异常块隐含子事务(热点循环内有性能成本)、Oracle 语句级回滚 vs 目标端块级回滚的范围差异——高频路径压测 + 半途失败数据一致性用例 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.result_cache | corpus/billing-demo/plsql/pkg_rate_engine.sql:2 | RESULT_CACHE 结果缓存函数:openGauss 6.0 A 模式 不支持(无函数级结果缓存;去标记后热点函数需性能评估) |
|
证据片段 result_cache 验证提示 目标端无函数级结果缓存;直接去掉标记功能不受影响但性能回退,热点函数需评估改应用层缓存或物化方案,先压测再定改造级别 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.associative_array | corpus/billing-demo/plsql/pkg_rate_engine.sql:2 | 关联数组(INDEX BY 表):openGauss 6.0 A 模式 部分支持(INDEX BY 关联数组语法 A 兼容提供;字符串键/稀疏遍历(FIRST/NEXT)边界待真库核对) |
|
证据片段 associative_array 验证提示 稀疏下标与字符串键是改造难点:目标端数组是稠密的,FIRST/NEXT 遍历模式需改;openGauss A 有 INDEX BY 兼容语法但边界(嵌套/字符串键/DELETE 方法)需真库核对 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.ref_cursor | corpus/billing-demo/plsql/pkg_rate_engine.sql:2 | REF CURSOR / SYS_REFCURSOR 游标变量:openGauss 6.0 A 模式 部分支持(游标变量/SYS_REFCURSOR A 兼容提供;跨事务持有与 JDBC 结果集返回路径待核) |
|
证据片段 ref_cursor 验证提示 PG 系有 refcursor 但生命周期不同(事务结束游标关闭,除非 WITH HOLD);作为过程 OUT 参数返回结果集给 JDBC 的模式需连同驱动侧取值方式一起改 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.record_type | corpus/billing-demo/plsql/pkg_rate_engine.sql:2 | RECORD 记录类型声明(TYPE ... IS RECORD):openGauss 6.0 A 模式 部分支持(PL 支持 record 类型(A 兼容);嵌套 record/字段默认值/整记录赋值边界待真库核对) |
|
证据片段 record_type 验证提示 目标端不支持函数内 RECORD 声明时改 schema 级复合类型;嵌套 record、字段默认值、嵌套 UDT 字段、整记录赋值/比较是高频差异点,逐个构造用例 |
|||||
| opengauss:6.0:A | major | plsql | ora.pkg.dbms_lob | corpus/billing-demo/plsql/pkg_rate_engine.sql:26 | DBMS_LOB 大对象操作调用:openGauss 6.0 A 模式 部分支持(DBE_LOB 兼容包承接(接口子集);同名 DBMS_LOB 调用需改写,字符/字节偏移语义与超大 LOB 边界待真库核对) |
|
证据片段 dbms_call_dbms_lob 验证提示 逐接口核对(CREATETEMPORARY/WRITEAPPEND/SUBSTR/GETLENGTH 语义差异各不相同);包级支持不等于方法级全支持,FILEISOPEN/ISTEMPORARY/LOBMAXSIZE 等 BFILE/临时 LOB 相关接口需按目标版本复核;临时 LOB 的生命周期与字符/字节偏移量语义必须用超长中文样本回归 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.package | corpus/billing-demo/plsql/pkg_rate_engine.sql:26 | PL/SQL 包(包级变量 / 初始化块):openGauss 6.0 A 模式 部分支持(包语法子集,包变量/初始化块差异需人工确认) |
|
证据片段 package_var 验证提示 包变量是会话级状态、初始化块在首次引用时执行——拆为 schema+函数后需用会话级临时表/配置表/应用层缓存承载状态,连接池复用连接时的状态串扰是最大风险 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.result_cache | corpus/billing-demo/plsql/pkg_rate_engine.sql:26 | RESULT_CACHE 结果缓存函数:openGauss 6.0 A 模式 不支持(无函数级结果缓存;去标记后热点函数需性能评估) |
|
证据片段 result_cache 验证提示 目标端无函数级结果缓存;直接去掉标记功能不受影响但性能回退,热点函数需评估改应用层缓存或物化方案,先压测再定改造级别 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.ref_cursor | corpus/billing-demo/plsql/pkg_rate_engine.sql:26 | REF CURSOR / SYS_REFCURSOR 游标变量:openGauss 6.0 A 模式 部分支持(游标变量/SYS_REFCURSOR A 兼容提供;跨事务持有与 JDBC 结果集返回路径待核) |
|
证据片段 ref_cursor 验证提示 PG 系有 refcursor 但生命周期不同(事务结束游标关闭,除非 WITH HOLD);作为过程 OUT 参数返回结果集给 JDBC 的模式需连同驱动侧取值方式一起改 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.predefined_exceptions | corpus/billing-demo/plsql/pkg_rate_engine.sql:26 | Oracle 预定义异常名称:openGauss 6.0 A 模式 部分支持(公开错误码表只证明 NO_DATA_FOUND、TOO_MANY_ROWS、CASE_NOT_FOUND 等部分同名条件;Oracle 预定义异常全集需逐项 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 predefined_exception 改写建议 按目标 condition 名或 SQLSTATE 重写异常分支 验证提示 只匹配需核对的 Oracle 预定义异常集合;按目标 condition 名或 SQLSTATE 映射,禁止沿用 Oracle 数值错误码 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.to_char_call | corpus/billing-demo/plsql/pkg_rate_engine.sql:26 | PL/SQL 表达式中的 TO_CHAR 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 to_char_call 改写建议 按数值、日期时间、时区和 INTERVAL 分流后逐格式 token 映射 验证提示 参数类型、格式模型、NLS、时区与 INTERVAL 需建议 PoC 复核 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.exception_block | corpus/billing-demo/plsql/pkg_rate_engine.sql:26 | EXCEPTION 异常处理块:openGauss 6.0 A 模式 部分支持(EXCEPTION 块提供;隐式子事务开销与 Oracle 语句级回滚差异需在热点路径评估) |
|
证据片段 exception_block 验证提示 语法普遍兼容,差异在两处:PG 系异常块隐含子事务(热点循环内有性能成本)、Oracle 语句级回滚 vs 目标端块级回滚的范围差异——高频路径压测 + 半途失败数据一致性用例 |
|||||
| opengauss:6.0:A | major | type | ora.type.clob_base | corpus/billing-demo/plsql/pkg_rate_engine.sql:26 | Oracle CLOB 类型:openGauss 6.0 A 模式 部分支持(CLOB 可映射/兼容,但大对象接口与空串语义建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 oracle_clob_type 改写建议 保留 CLOB 验证提示 PG 映射 text;Oracle 兼容目标通常原生。大对象流式接口、空串与字符集建议 PoC 复核。 |
|||||
| opengauss:6.0:A | critical | plsql | ora.pkg.utl_file | corpus/billing-demo/plsql/prc_archive_cdr.sql:4 | UTL_FILE 服务器文件读写调用:openGauss 6.0 A 模式 部分支持(Whale 脚本加载 UTL_FILE 兼容对象,但仅覆盖接口子集且受服务器路径和权限约束;结论为 doc_based 草案,建议文件边界做 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 dbms_call_utl_file 验证提示 依赖 DIRECTORY 对象与数据库服务器本地文件系统;分布式/主备目标上"文件落在哪台机器"语义变化是硬风险,优先评估改应用层文件处理或对象存储 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.goto | corpus/billing-demo/plsql/prc_archive_cdr.sql:4 | GOTO 语句:openGauss 6.0 A 模式 部分支持(PL 语法提供 GOTO(文档提供);标签作用域细节待核) |
|
证据片段 goto 验证提示 PL/pgSQL 无 GOTO;需重构控制流(循环+EXIT/CONTINUE/嵌套块+异常)——重构属逻辑改写,必须逐分支对照原跳转路径回归 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.when_others | corpus/billing-demo/plsql/prc_archive_cdr.sql:4 | WHEN OTHERS 异常兜底:openGauss 6.0 A 模式 部分支持(EXCEPTION WHEN OTHERS 提供;SQLCODE/SQLERRM 兼容面与异常块开销待核) |
|
证据片段 when_others 验证提示 语法两端都有,但 PG 系异常块隐含子事务(进入块即设 savepoint):高频循环内的 WHEN OTHERS 在目标端有可观性能开销,且 SQLCODE/SQLERRM 需改 SQLSTATE 体系 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.dynamic_sql | corpus/billing-demo/plsql/prc_archive_cdr.sql:4 | 动态 SQL(EXECUTE IMMEDIATE):openGauss 6.0 A 模式 部分支持(EXECUTE IMMEDIATE ... USING/INTO 提供;DBMS_SQL 包需改 dbe_sql 类兼容包(接口子集)) |
|
证据片段 dynamic_sql 验证提示 EXECUTE IMMEDIATE 的 USING/INTO/RETURNING 形态与目标端 EXECUTE 语法差异需逐条改;DBMS_SQL 由独立包/方法规则评估;拼接出的 SQL 文本静态扫描覆盖不到(诚实降级),动态 SQL 密集对象建议整体人工评审 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.to_char_call | corpus/billing-demo/plsql/prc_archive_cdr.sql:4 | PL/SQL 表达式中的 TO_CHAR 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 to_char_call 改写建议 按数值、日期时间、时区和 INTERVAL 分流后逐格式 token 映射 验证提示 参数类型、格式模型、NLS、时区与 INTERVAL 需建议 PoC 复核 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.exception_block | corpus/billing-demo/plsql/prc_archive_cdr.sql:4 | EXCEPTION 异常处理块:openGauss 6.0 A 模式 部分支持(EXCEPTION 块提供;隐式子事务开销与 Oracle 语句级回滚差异需在热点路径评估) |
|
证据片段 exception_block 验证提示 语法普遍兼容,差异在两处:PG 系异常块隐含子事务(热点循环内有性能成本)、Oracle 语句级回滚 vs 目标端块级回滚的范围差异——高频路径压测 + 半途失败数据一致性用例 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.bulk_collect | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | BULK COLLECT 批量取数:openGauss 6.0 A 模式 部分支持(BULK COLLECT 语法 A 兼容提供;LIMIT 分批与集合方法边界待真库核对) |
|
证据片段 bulk_collect 验证提示 与集合类型强绑定;目标端改数组聚合(array_agg)或直接 SQL 化(多数 BULK 循环可整体改一条 SQL),LIMIT 分批语义需保留以控内存 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.forall | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | FORALL 批量 DML:openGauss 6.0 A 模式 部分支持(FORALL 提供;SAVE EXCEPTIONS 容错语义待真库验证) |
|
证据片段 forall 验证提示 SAVE EXCEPTIONS 的逐行容错语义是改写难点(目标端改 INSERT...SELECT 后单行失败即整批失败);FORALL 内 MERGE 组合按不支持高风险处理,批量性能与错误处理策略需与业务确认 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.associative_array | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | 关联数组(INDEX BY 表):openGauss 6.0 A 模式 部分支持(INDEX BY 关联数组语法 A 兼容提供;字符串键/稀疏遍历(FIRST/NEXT)边界待真库核对) |
|
证据片段 associative_array 验证提示 稀疏下标与字符串键是改造难点:目标端数组是稠密的,FIRST/NEXT 遍历模式需改;openGauss A 有 INDEX BY 兼容语法但边界(嵌套/字符串键/DELETE 方法)需真库核对 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.when_others | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | WHEN OTHERS 异常兜底:openGauss 6.0 A 模式 部分支持(EXCEPTION WHEN OTHERS 提供;SQLCODE/SQLERRM 兼容面与异常块开销待核) |
|
证据片段 when_others 验证提示 语法两端都有,但 PG 系异常块隐含子事务(进入块即设 savepoint):高频循环内的 WHEN OTHERS 在目标端有可观性能开销,且 SQLCODE/SQLERRM 需改 SQLSTATE 体系 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.savepoint | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | PL/SQL 内 SAVEPOINT 部分回滚:openGauss 6.0 A 模式 部分支持(过程内 SAVEPOINT/ROLLBACK TO 支持面待真库验证) |
|
证据片段 savepoint 验证提示 PG 系函数内不能直接 SAVEPOINT/ROLLBACK TO(函数在调用者事务内),过程(PROCEDURE)内事务控制也有限制;常可改 BEGIN...EXCEPTION 块的隐式子事务模拟,回滚粒度必须逐点核对 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.type_anchor | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | PL/SQL %TYPE 声明锚定:openGauss 6.0 A 模式 部分支持(官方变量声明文档证明 %TYPE 锚定语法;跨 schema、列变更重编译及复合类型边界仍需 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 type_anchor 改写建议 可证明引用域等价时保留 %TYPE,否则从源声明解析为显式目标类型 验证提示 扫描器只证明存在 %TYPE,不能静态断言锚点属于表列、包变量或其他声明;解析失败时不得猜目标类型 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.trunc_call | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | PL/SQL 表达式中的 TRUNC 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 trunc_call 改写建议 日期按单位改 date_trunc/锚点表达式并恢复返回类型;数值按 scale 截断 验证提示 只定位过程表达式调用;日期/数值重载、格式单位与 NLS 仍需建议 PoC 复核 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.exception_block | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | EXCEPTION 异常处理块:openGauss 6.0 A 模式 部分支持(EXCEPTION 块提供;隐式子事务开销与 Oracle 语句级回滚差异需在热点路径评估) |
|
证据片段 exception_block 验证提示 语法普遍兼容,差异在两处:PG 系异常块隐含子事务(热点循环内有性能成本)、Oracle 语句级回滚 vs 目标端块级回滚的范围差异——高频路径压测 + 半途失败数据一致性用例 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.associative_array | corpus/billing-demo/plsql/prc_credit_check.sql:2 | 关联数组(INDEX BY 表):openGauss 6.0 A 模式 部分支持(INDEX BY 关联数组语法 A 兼容提供;字符串键/稀疏遍历(FIRST/NEXT)边界待真库核对) |
|
证据片段 associative_array 验证提示 稀疏下标与字符串键是改造难点:目标端数组是稠密的,FIRST/NEXT 遍历模式需改;openGauss A 有 INDEX BY 兼容语法但边界(嵌套/字符串键/DELETE 方法)需真库核对 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.when_others | corpus/billing-demo/plsql/prc_credit_check.sql:2 | WHEN OTHERS 异常兜底:openGauss 6.0 A 模式 部分支持(EXCEPTION WHEN OTHERS 提供;SQLCODE/SQLERRM 兼容面与异常块开销待核) |
|
证据片段 when_others 验证提示 语法两端都有,但 PG 系异常块隐含子事务(进入块即设 savepoint):高频循环内的 WHEN OTHERS 在目标端有可观性能开销,且 SQLCODE/SQLERRM 需改 SQLSTATE 体系 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.predefined_exceptions | corpus/billing-demo/plsql/prc_credit_check.sql:2 | Oracle 预定义异常名称:openGauss 6.0 A 模式 部分支持(公开错误码表只证明 NO_DATA_FOUND、TOO_MANY_ROWS、CASE_NOT_FOUND 等部分同名条件;Oracle 预定义异常全集需逐项 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 predefined_exception 改写建议 按目标 condition 名或 SQLSTATE 重写异常分支 验证提示 只匹配需核对的 Oracle 预定义异常集合;按目标 condition 名或 SQLSTATE 映射,禁止沿用 Oracle 数值错误码 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.to_number_call | corpus/billing-demo/plsql/prc_credit_check.sql:2 | PL/SQL 表达式中的 TO_NUMBER 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 to_number_call 改写建议 单参数显式 cast;带格式/NLS/DEFAULT 的形态按语句级 TO_NUMBER 规则拆解 验证提示 只定位标准函数调用;格式模型、NLS 与 DEFAULT 错误边界需建议 PoC 复核 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.to_char_call | corpus/billing-demo/plsql/prc_credit_check.sql:2 | PL/SQL 表达式中的 TO_CHAR 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 to_char_call 改写建议 按数值、日期时间、时区和 INTERVAL 分流后逐格式 token 映射 验证提示 参数类型、格式模型、NLS、时区与 INTERVAL 需建议 PoC 复核 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.exception_block | corpus/billing-demo/plsql/prc_credit_check.sql:2 | EXCEPTION 异常处理块:openGauss 6.0 A 模式 部分支持(EXCEPTION 块提供;隐式子事务开销与 Oracle 语句级回滚差异需在热点路径评估) |
|
证据片段 exception_block 验证提示 语法普遍兼容,差异在两处:PG 系异常块隐含子事务(热点循环内有性能成本)、Oracle 语句级回滚 vs 目标端块级回滚的范围差异——高频路径压测 + 半途失败数据一致性用例 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.savepoint | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | PL/SQL 内 SAVEPOINT 部分回滚:openGauss 6.0 A 模式 部分支持(过程内 SAVEPOINT/ROLLBACK TO 支持面待真库验证) |
|
证据片段 savepoint 验证提示 PG 系函数内不能直接 SAVEPOINT/ROLLBACK TO(函数在调用者事务内),过程(PROCEDURE)内事务控制也有限制;常可改 BEGIN...EXCEPTION 块的隐式子事务模拟,回滚粒度必须逐点核对 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.predefined_exceptions | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | Oracle 预定义异常名称:openGauss 6.0 A 模式 部分支持(公开错误码表只证明 NO_DATA_FOUND、TOO_MANY_ROWS、CASE_NOT_FOUND 等部分同名条件;Oracle 预定义异常全集需逐项 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 predefined_exception 改写建议 按目标 condition 名或 SQLSTATE 重写异常分支 验证提示 只匹配需核对的 Oracle 预定义异常集合;按目标 condition 名或 SQLSTATE 映射,禁止沿用 Oracle 数值错误码 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.raise_application_error | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | RAISE_APPLICATION_ERROR 自定义错误:openGauss 6.0 A 模式 部分支持(支持情况待真库验证;-20000~-20999 错误码与 SQLCODE 映射需对照,JDBC 捕获逻辑联动) |
|
证据片段 raise_application_error 验证提示 -20000~-20999 错误码是应用与库之间的接口契约:JDBC/异常处理层按 getErrorCode 分支的逻辑,迁移后要改按 SQLSTATE/消息文本匹配,必须逐错误码建映射表并回归 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.exception_block | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | EXCEPTION 异常处理块:openGauss 6.0 A 模式 部分支持(EXCEPTION 块提供;隐式子事务开销与 Oracle 语句级回滚差异需在热点路径评估) |
|
证据片段 exception_block 验证提示 语法普遍兼容,差异在两处:PG 系异常块隐含子事务(热点循环内有性能成本)、Oracle 语句级回滚 vs 目标端块级回滚的范围差异——高频路径压测 + 半途失败数据一致性用例 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.bulk_collect | corpus/billing-demo/plsql/prc_month_rebill.sql:2 | BULK COLLECT 批量取数:openGauss 6.0 A 模式 部分支持(BULK COLLECT 语法 A 兼容提供;LIMIT 分批与集合方法边界待真库核对) |
|
证据片段 bulk_collect 验证提示 与集合类型强绑定;目标端改数组聚合(array_agg)或直接 SQL 化(多数 BULK 循环可整体改一条 SQL),LIMIT 分批语义需保留以控内存 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.nested_table | corpus/billing-demo/plsql/prc_month_rebill.sql:2 | 嵌套表集合类型(TABLE OF):openGauss 6.0 A 模式 部分支持(TABLE OF 集合类型子集;多维/嵌套边界待核) |
|
证据片段 nested_table 验证提示 PL/SQL 内的嵌套表改数组/临时表;作为列类型的嵌套表(存储形态)另由 udt_column 对象规则承载,两者改造方案不同勿混 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.when_others | corpus/billing-demo/plsql/prc_month_rebill.sql:2 | WHEN OTHERS 异常兜底:openGauss 6.0 A 模式 部分支持(EXCEPTION WHEN OTHERS 提供;SQLCODE/SQLERRM 兼容面与异常块开销待核) |
|
证据片段 when_others 验证提示 语法两端都有,但 PG 系异常块隐含子事务(进入块即设 savepoint):高频循环内的 WHEN OTHERS 在目标端有可观性能开销,且 SQLCODE/SQLERRM 需改 SQLSTATE 体系 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.exception_block | corpus/billing-demo/plsql/prc_month_rebill.sql:2 | EXCEPTION 异常处理块:openGauss 6.0 A 模式 部分支持(EXCEPTION 块提供;隐式子事务开销与 Oracle 语句级回滚差异需在热点路径评估) |
|
证据片段 exception_block 验证提示 语法普遍兼容,差异在两处:PG 系异常块隐含子事务(热点循环内有性能成本)、Oracle 语句级回滚 vs 目标端块级回滚的范围差异——高频路径压测 + 半途失败数据一致性用例 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.to_char_call | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | PL/SQL 表达式中的 TO_CHAR 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 to_char_call 改写建议 按数值、日期时间、时区和 INTERVAL 分流后逐格式 token 映射 验证提示 参数类型、格式模型、NLS、时区与 INTERVAL 需建议 PoC 复核 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | plsql | ora.pkg.dbms_job | corpus/billing-demo/plsql/prc_submit_jobs.sql:2 | DBMS_JOB 定时作业调用(过程体内):openGauss 6.0 A 模式 部分支持(有类 DBMS_JOB 定时任务兼容接口(PKG_SERVICE/DBE_TASK 类);DBMS_SCHEDULER 全量语义无对应) |
|
证据片段 dbms_call_dbms_job 验证提示 作业清单先从 DBA_JOBS 导出对账;迁移后必须验证到点触发、失败重试与作业间依赖顺序,interval 表达式需逐条改写为目标调度语法 |
|||||
| opengauss:6.0:A | major | plsql | ora.pkg.dbms_scheduler | corpus/billing-demo/plsql/prc_submit_jobs.sql:2 | DBMS_SCHEDULER 调度器调用(过程体内):openGauss 6.0 A 模式 部分支持(有类 DBMS_JOB 定时任务兼容接口(PKG_SERVICE/DBE_TASK 类);DBMS_SCHEDULER 全量语义无对应) |
|
证据片段 dbms_call_dbms_scheduler 验证提示 SCHEDULER 语义面远大于 JOB(program/chain/window/日历表达式);目标端多只有类 JOB 接口,链式依赖与日历语法需人工重建并验证触发时刻 |
|||||
| opengauss:6.0:A | major | type | ora.type.plsql_integer | corpus/billing-demo/plsql/prc_submit_jobs.sql:2 | PL/SQL 专用整数类型:openGauss 6.0 A 模式 部分支持(PL/SQL 整数别名支持面与溢出/NULL 行为建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 plsql_integer_types 改写建议 PLS_INTEGER/BINARY_INTEGER -> integer 验证提示 可改 integer,但 SIMPLE_INTEGER 的 NOT NULL 与溢出行为、PLS_INTEGER 边界需保留验证 |
|||||
| opengauss:6.0:A | major | function | ora.plsql.seed.trunc_call | corpus/billing-demo/plsql/prc_submit_jobs.sql:2 | PL/SQL 表达式中的 TRUNC 调用:openGauss 6.0 A 模式 不支持(能力矩阵未声明该特征,按不支持处理并降低置信度) |
|
证据片段 trunc_call 改写建议 日期按单位改 date_trunc/锚点表达式并恢复返回类型;数值按 scale 截断 验证提示 只定位过程表达式调用;日期/数值重载、格式单位与 NLS 仍需建议 PoC 复核 |
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.ref_cursor | corpus/billing-demo/plsql/prc_sync_crm_cust.sql:2 | REF CURSOR / SYS_REFCURSOR 游标变量:openGauss 6.0 A 模式 部分支持(游标变量/SYS_REFCURSOR A 兼容提供;跨事务持有与 JDBC 结果集返回路径待核) |
|
证据片段 ref_cursor 验证提示 PG 系有 refcursor 但生命周期不同(事务结束游标关闭,除非 WITH HOLD);作为过程 OUT 参数返回结果集给 JDBC 的模式需连同驱动侧取值方式一起改 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.dblink_in_body | corpus/billing-demo/plsql/prc_sync_crm_cust.sql:2 | 过程体内 DBLINK 引用(obj@link):openGauss 6.0 A 模式 部分支持(需 dblink 扩展,跨库事务不支持) |
|
证据片段 dblink_usage 验证提示 与语句级 ora.object.dblink_ref 互补(过程体走对象通道触达不到语句规则);跨库事务是 DBLINK 改造的分水岭——只读引用可改 fdw/同步表,写路径需拆两阶段并重设计一致性 |
|||||
| opengauss:6.0:A | blocker | plsql | ora.plsql.autonomous_txn | corpus/billing-demo/plsql/prc_write_oplog.sql:3 | 自治事务(PRAGMA AUTONOMOUS_TRANSACTION):openGauss 6.0 A 模式 不支持(需改造为独立连接/作业方案,涉及事务语义重设计) |
|
证据片段 autonomous_transaction 验证提示 典型用途是"主事务回滚仍要落日志/审计";改独立连接(dblink 自连/应用层第二连接)或消息化方案,必须构造主事务回滚用例验证日志仍落盘 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.when_others | corpus/billing-demo/plsql/prc_write_oplog.sql:3 | WHEN OTHERS 异常兜底:openGauss 6.0 A 模式 部分支持(EXCEPTION WHEN OTHERS 提供;SQLCODE/SQLERRM 兼容面与异常块开销待核) |
|
证据片段 when_others 验证提示 语法两端都有,但 PG 系异常块隐含子事务(进入块即设 savepoint):高频循环内的 WHEN OTHERS 在目标端有可观性能开销,且 SQLCODE/SQLERRM 需改 SQLSTATE 体系 |
|||||
| opengauss:6.0:A | minor | plsql | ora.plsql.exception_block | corpus/billing-demo/plsql/prc_write_oplog.sql:3 | EXCEPTION 异常处理块:openGauss 6.0 A 模式 部分支持(EXCEPTION 块提供;隐式子事务开销与 Oracle 语句级回滚差异需在热点路径评估) |
|
证据片段 exception_block 验证提示 语法普遍兼容,差异在两处:PG 系异常块隐含子事务(热点循环内有性能成本)、Oracle 语句级回滚 vs 目标端块级回滚的范围差异——高频路径压测 + 半途失败数据一致性用例 |
|||||
| opengauss:6.0:A | major | type | ora.type.long | corpus/billing-demo/ddl/schema.sql:13 | LONG / LONG RAW 列类型:openGauss 6.0 A 模式 不支持(结构可映射;应用按 LONG 语义取值路径需回归) |
|
证据片段 column_type_long, long_type 改写建议 LONG→CLOB/TEXT、LONG RAW→BLOB/BYTEA 验证提示 结构可自动改写(LONG→CLOB、LONG RAW→BLOB,源工具 map_long_type_to_ob 同款映射);但应用侧按 LONG 语义取值/拼 DDL 的路径需回归,且 LONG 列上的历史限制(每表一列等)消失后行为可能变化 |
|||||
| opengauss:6.0:A | minor | object | ora.column.invisible | corpus/billing-demo/ddl/schema.sql:13 | 不可见列(INVISIBLE COLUMN):openGauss 6.0 A 模式 部分支持(INVISIBLE 列支持情况待真库验证;SELECT */INSERT 省列名的隐式依赖需回归) |
|
证据片段 invisible_column 验证提示 源工具对可见性漂移生成自动修补(COLUMN_VISIBILITY_MISMATCH → generate fixup);重点回归 SELECT * 与 INSERT 省列名两类隐式依赖 |
|||||
| opengauss:6.0:A | minor | type | ora.type.national_char | corpus/billing-demo/ddl/schema.sql:13 | NCHAR / NVARCHAR2 国家字符集类型:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): NCHAR/NVARCHAR2 ASCII 建表与长度可用;库编码 SQL_ASCII,无法验证国家字符集/CJK 语义,保留 partial 【本批真机验证边界】 本批真机 DDL 建删通过:仅证明 DDL 语法与对象建删,不证明数据、事务或会话语义;本批证据结论不超过 partial) |
|
证据片段 national_char_types 验证提示 国家字符集与数据库字符集双字符集架构是 Oracle 特有;目标端统一字符集后映射普通 varchar,长度按字符语义换算,混合中英文数据必测截断边界 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:13 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | critical | type | ora.type.udt_column | corpus/billing-demo/ddl/schema.sql:31 | 用户自定义类型(UDT)作为列类型:openGauss 6.0 A 模式 部分支持(复合类型可承载结构;方法/嵌套集合列需拆表或 JSON 化) |
|
证据片段 column_type_udt 验证提示 判定需关联对象清单(列类型能在非 SYS 的 TYPE 清单中命中才算 UDT,源工具用 dba_tab_columns JOIN dba_types 判定);嵌套表/VARRAY 列同属此类,通常需拆表或 JSON 化改造 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:31 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:57 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | object | ora.column.virtual | corpus/billing-demo/ddl/schema.sql:70 | 虚拟列(GENERATED ALWAYS AS ... VIRTUAL):openGauss 6.0 A 模式 部分支持(生成列可承载;表达式函数兼容面逐个核对,VIRTUAL/STORED 形态差异待核) |
|
证据片段 virtual_column 验证提示 源工具把虚拟列差异归为人工复核(COLUMN_VIRTUAL_MISMATCH → manual review):生成表达式里的函数兼容面需逐个核对,不能盲目自动修补 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:81 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | type | ora.type.timestamp_ltz | corpus/billing-demo/ddl/schema.sql:92 | TIMESTAMP WITH LOCAL TIME ZONE 类型:openGauss 6.0 A 模式 不支持(TIMESTAMP WITH LOCAL TIME ZONE 支持情况待真库验证;展示时区来源机制不同 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 timestamp_local_tz 验证提示 LOCAL 变体(按会话时区展示、按库时区存储)无直接等价物;改 timestamptz 后展示时区来源从"会话 TIME_ZONE"变为目标端时区参数,跨时区部署的应用必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:92 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:105 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:122 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:136 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:168 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:192 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:251 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:268 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:281 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | type | ora.type.long | corpus/billing-demo/ddl/schema.sql:293 | LONG / LONG RAW 列类型:openGauss 6.0 A 模式 不支持(结构可映射;应用按 LONG 语义取值路径需回归) |
|
证据片段 column_type_long_raw, long_type 改写建议 LONG→CLOB/TEXT、LONG RAW→BLOB/BYTEA 验证提示 结构可自动改写(LONG→CLOB、LONG RAW→BLOB,源工具 map_long_type_to_ob 同款映射);但应用侧按 LONG 语义取值/拼 DDL 的路径需回归,且 LONG 列上的历史限制(每表一列等)消失后行为可能变化 |
|||||
| opengauss:6.0:A | critical | type | ora.type.bfile | corpus/billing-demo/ddl/schema.sql:293 | BFILE 外部文件类型:openGauss 6.0 A 模式 不支持(无外部文件定位器;连同 DIRECTORY 与文件存储方案整体改造) |
|
证据片段 bfile_type, column_type_bfile 验证提示 外部文件定位器无对应能力;需连同 DIRECTORY 对象与文件存储方案一起改造(如改 BLOB 或外部对象存储) |
|||||
| opengauss:6.0:A | major | type | ora.type.clob_base | corpus/billing-demo/ddl/schema.sql:293 | Oracle CLOB 类型:openGauss 6.0 A 模式 部分支持(CLOB 可映射/兼容,但大对象接口与空串语义建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 oracle_clob_type 改写建议 保留 CLOB 验证提示 PG 映射 text;Oracle 兼容目标通常原生。大对象流式接口、空串与字符集建议 PoC 复核。 |
|||||
| opengauss:6.0:A | minor | type | ora.type.interval_columns | corpus/billing-demo/ddl/schema.sql:306 | INTERVAL YEAR TO MONTH / DAY TO SECOND 类型:openGauss 6.0 A 模式 部分支持(【既有矩阵说明(不作为本批新增证据;若冲突,以本批边界和 support 字段为准)】 实测2026-07-09(og6.0.5): INTERVAL YEAR TO MONTH/DAY TO SECOND 可建表和插入;YEAR TO MONTH 取回显示为 days(1-2 -> 425 days),日历月语义需复核 【本批真机验证边界】 本批真机 DDL 建删通过:仅证明 DDL 语法与对象建删,不证明数据、事务或会话语义;本批证据结论不超过 partial;本结论来自人工代表性 fixture,未覆盖的自动变体及其处置见证据工件) |
|
证据片段 interval_types 验证提示 Oracle 是两个独立受限类型;PG 系是单一 interval 类型——迁移后"年月/日时分开存"的约束消失,混合单位运算不再报错,依赖该约束的校验逻辑需业务确认 |
|||||
| opengauss:6.0:A | minor | type | ora.type.interval_leading_precision | corpus/billing-demo/ddl/schema.sql:306 | INTERVAL YEAR / DAY leading precision:openGauss 6.0 A 模式 部分支持(A 模式限定符支持面未由本批真机覆盖;建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 interval_leading_precision 改写建议 目标不受理时去除 YEAR/DAY leading precision,保留字段限定 验证提示 Oracle 的 YEAR/DAY leading precision 在部分目标语法中无对应位置;只去限定符,不改变 interval 字段族 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:306 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | critical | type | ora.type.rowid | corpus/billing-demo/ddl/schema.sql:317 | ROWID / UROWID 列类型:openGauss 6.0 A 模式 部分支持(研究结论:弱 ROWID 兼容、语义不等价;存储的物理地址跨库失效,评估业务用途后改造) |
|
证据片段 column_type_rowid, rowid_type 验证提示 源工具将其列入黑名单(UNSUPPORTED_TYPES);即使目标端有等价物,存储的物理地址跨库后也失效,需评估业务用途后改造(如改主键引用) |
|||||
| opengauss:6.0:A | minor | type | ora.type.binary_double | corpus/billing-demo/ddl/schema.sql:317 | BINARY_DOUBLE 类型:openGauss 6.0 A 模式 部分支持(既有 aggregate 探针显示类型可建;特殊值、精度与驱动映射建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 binary_float_double.binary_double 改写建议 保留 BINARY_DOUBLE 验证提示 映射 double precision;NaN/Infinity 的比较排序和驱动类型仍需单独验证 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:333 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:351 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:361 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:370 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | major | type | ora.type.raw_uuid_candidate | corpus/billing-demo/ddl/schema.sql:370 | RAW(16/32) UUID 候选:openGauss 6.0 A 模式 部分支持(原生 RAW 不应继承 PostgreSQL UUID/bytea 改写;建议 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 raw_uuid_candidate 改写建议 保留 RAW(16/32),仅值域确认是 UUID 时才另行改型 验证提示 这是候选识别而非自动判定;只有值域确为 SYS_GUID/UUID 时才改 uuid,否则仍应映射 bytea |
|||||
| opengauss:6.0:A | critical | type | ora.type.xmltype | corpus/billing-demo/ddl/schema.sql:381 | XMLTYPE 列类型:openGauss 6.0 A 模式 部分支持(有 xml 类型;XMLTYPE 对象方法/XMLSCHEMA 存储子句无对应) |
|
证据片段 column_type_xmltype, xmltype 验证提示 源工具按黑名单处理;常见改造为 CLOB + 应用层解析。附带的 "XMLTYPE COLUMN ... XMLSCHEMA" 存储子句也需一并移除(源工具 clean_xmltype_xmlschema_clause) |
|||||
| opengauss:6.0:A | minor | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:381 | CHAR 定长补空格类型:openGauss 6.0 A 模式 部分支持(bpchar 补空格类似;与 varchar 比较时尾随空格细节需 'abc'='abc ' 用例对照) |
|
证据片段 char_blank_padding 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| opengauss:6.0:A | critical | plsql | ora.plsql.object_type | corpus/billing-demo/ddl/schema.sql:423 | 对象类型(CREATE TYPE ... AS OBJECT / MEMBER 方法):openGauss 6.0 A 模式 不支持(未见对象类型方法/继承支持,待真库复核;复合类型仅结构无行为) |
|
证据片段 object_type_usage 验证提示 对象类型的方法/继承(UNDER/OVERRIDING)/构造器无对应能力;TYPE BODY、NEW 构造器、PERSISTABLE 修饰、SYS_TYPEID/TREAT 等关联形态按同族复核;PG 系复合类型只有结构没有行为,方法需拆为独立函数,继承体系需重新设计 |
|||||
| opengauss:6.0:A | minor | object | ora.ddl.editionable | corpus/billing-demo/ddl/schema.sql:483 | EDITIONABLE / NONEDITIONABLE 关键字:openGauss 6.0 A 模式 不支持(无 edition 概念;EDITIONABLE/NONEDITIONABLE 关键字移除即可 |实测2026-07-09(og6.0.5): 语法被拒,确认不兼容) |
|
证据片段 editionable 验证提示 DBMS_METADATA 导出的 VIEW/PLSQL/TRIGGER 头几乎必带;源工具全对象类型自动移除 (verified unsupported),无语义损失——除非源库真用了多 Edition 在线发布, 那属于发布流程改造。触发器头重写时注意别把 ON 关键字误当对象名
|
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.trigger_new_old | corpus/billing-demo/ddl/schema.sql:516 | 触发器 :NEW/:OLD 冒号引用语法:openGauss 6.0 A 模式 部分支持(A 兼容触发器语法面待真库验证;兜底改造路径为 PG 风格触发器函数 + NEW./OLD.(无冒号)) |
|
证据片段 trigger_correlation_reference 改写建议 :NEW/:OLD 改触发器函数内 NEW/OLD,并把触发器体拆为独立函数 验证提示 PG 系触发器函数内为 NEW./OLD.(无冒号)且触发器体要拆成独立函数;触发器整体改造时用"插入→触发→断言审计行"用例回归,REFERENCING 重命名形态纳入触发器族检测 |
|||||
| opengauss:6.0:A | critical | object | ora.trigger.on_gtt | corpus/billing-demo/ddl/schema.sql:516 | 临时表上的 DML 触发器:openGauss 6.0 A 模式 部分支持(临时表上触发器的支持面待真库验证) |
|
证据片段 trigger_on_global_temp_table 验证提示 源工具实测结论:OB 不支持在临时表上创建 DML 触发器(报 ORA-00600/-4007), 单独分流到 triggers_temp_table_unsupported 明细。判定需把触发器 ON 目标与 临时表清单做关联(object_feature),纯文本看不出基表形态
|
|||||
| opengauss:6.0:A | major | plsql | ora.plsql.trigger_new_old | corpus/billing-demo/ddl/schema.sql:527 | 触发器 :NEW/:OLD 冒号引用语法:openGauss 6.0 A 模式 部分支持(A 兼容触发器语法面待真库验证;兜底改造路径为 PG 风格触发器函数 + NEW./OLD.(无冒号)) |
|
证据片段 trigger_correlation_reference 改写建议 :NEW/:OLD 改触发器函数内 NEW/OLD,并把触发器体拆为独立函数 验证提示 PG 系触发器函数内为 NEW./OLD.(无冒号)且触发器体要拆成独立函数;触发器整体改造时用"插入→触发→断言审计行"用例回归,REFERENCING 重命名形态纳入触发器族检测 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.userenv | corpus/billing-demo/sqltext/awr_top.sql:36 | USERENV 函数(已废弃遗留写法):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 USERENV('SESSIONID')验证提示 Oracle 自身已建议改 SYS_CONTEXT('USERENV', ...);迁移时按键逐个映射(SESSIONID/LANG/TERMINAL),部分键目标端无对应。OB 早期仅少量 USERENV 参数可用,按目标版本逐键核对。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/sqltext/awr_top.sql:40 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.for_update_of | corpus/billing-demo/sqltext/awr_top.sql:56 | SELECT ... FOR UPDATE OF 列级锁定写法:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FOR UPDATE OF 验证提示 Oracle 的 OF 接"列名"(锁定该列所在表的行);PG 系 FOR UPDATE OF 接"表别名"——语法迁移必须把列改成表引用,多表连接场景锁范围需重审 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.for_update_wait | corpus/billing-demo/sqltext/awr_top.sql:56 | FOR UPDATE WAIT n 超时等待子句:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FOR UPDATE OF BALANCE WAIT 5 验证提示 PG 系只有 NOWAIT/SKIP LOCKED,无 WAIT n;等待超时需改会话级 lock_timeout 参数模拟,错误码与应用重试逻辑需联动改 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.trunc | corpus/billing-demo/sqltext/awr_top.sql:68 | TRUNC 函数(日期截断语义):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/sqltext/awr_top.sql:68 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/sqltext/awr_top.sql:72 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM BILL_DETAIL BD, TARIFF_ITEM TI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | info | behavior | ora.behavior.concat_null | corpus/billing-demo/sqltext/awr_top.sql:86 | 字符串拼接 || 的 NULL 语义:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 || 验证提示 判定条件:使用 || 且操作数可能为 NULL 或空串;规则无法推断可空性,须结合元数据和数据迁移策略确认,常量非空链可排除。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.leading_wildcard_like | corpus/billing-demo/sqltext/awr_top.sql:86 | LIKE 前导通配符:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 LIKE '%' 验证提示 前导 % 通常无法走普通 B-tree 索引;评估反向索引、全文索引或搜索服务替代。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.rownum_without_order | corpus/billing-demo/sqltext/awr_top.sql:90 | ROWNUM 限制未伴随 ORDER BY:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 ROWNUM <= 100 改写建议 先补 ORDER BY 业务排序键和唯一稳定键,再用 FETCH FIRST n ROWS ONLY 或 ROW_NUMBER() 取 Top-N 验证提示 判定条件:业务把无 ORDER BY 的 ROWNUM Top-N 当作“最新、最大或固定首批”时结果不稳定;纯任意抽样可保留其非确定性。 |
|||||
| oceanbase:4.3.5:oracle | minor | syntax | ora.hint.optimizer_hint | corpus/billing-demo/sqltext/awr_top.sql:94 | Optimizer Hint(/*+ ... */):OceanBase 4.3.5 Oracle 模式 部分支持(约 60+ hint 白名单(APPEND/FULL/INDEX/LEADING/PARALLEL 系/NO_* 系/OUTLINE 对等);未知 hint 静默失效,建议 keep_supported 清洗并做性能回归;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 /*+ PARALLEL(D 4) */ 验证提示 源工具用词法级过滤器(区分字符串/注释/q-quote)按白名单清洗:默认 keep_supported 策略, OB Oracle 模式约 60+ 个 hint 在白名单(APPEND/FULL/INDEX/LEADING/PARALLEL 系/NO_* 系等), 未知 hint 删除并采样上报。不兼容 hint 不报错但静默失效,性能回归需专项测
|
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.listagg | corpus/billing-demo/sqltext/awr_top.sql:100 | LISTAGG 聚合函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 LISTAGG(SERV_NBR, ',') WITHIN GROUP (ORDER BY SERV_NBR) 验证提示 判定条件:调用 LISTAGG;需分别识别聚合/分析形态、DISTINCT、WITHIN GROUP 顺序和 ON OVERFLOW 契约。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/sqltext/awr_top.sql:108 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | behavior | ora.behavior.date_arithmetic | corpus/billing-demo/sqltext/awr_top.sql:108 | 日期直接加减数字(天数运算):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE - 3 验证提示 判定条件:静态命中 SYSDATE/SYSTIMESTAMP 与数字直接加减;数字单位为天,且 TIMESTAMP 与 NUMBER 运算在 Oracle 会先降为 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.harvest_ora2pg_substr_nonnegative | corpus/billing-demo/sqltext/awr_top.sql:116 | SUBSTR 非负起点语义:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SUBSTR(CUST_CODE, 1, 10) 验证提示 命中静态非负或符号未知的动态起点,仅与负整数字面量规则互斥;动态起点运行时可能为负,且 Oracle start=0 边界不同,必须人工复核 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_char | corpus/billing-demo/sqltext/awr_top.sql:130 | TO_CHAR 函数(日期/数值格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_CHAR(ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 1 - LEVEL), 'YYYYMM') 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.trunc | corpus/billing-demo/sqltext/awr_top.sql:130 | TRUNC 函数(日期截断语义):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'MM') 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.add_months | corpus/billing-demo/sqltext/awr_top.sql:130 | ADD_MONTHS 函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 ADD_MONTHS(TRUNC(SYSDATE, 'MM'), 1 - LEVEL) 验证提示 判定条件:调用 ADD_MONTHS(date, n);月定义来自 NLS_CALENDAR,月末规则特殊,且无论输入 datetime 类型均返回 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/sqltext/awr_top.sql:130 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_char | corpus/billing-demo/sqltext/awr_top.sql:134 | TO_CHAR 函数(日期/数值格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_CHAR(PAY_TIME, 'YYYYMMDD') 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.trunc | corpus/billing-demo/sqltext/awr_top.sql:134 | TRUNC 函数(日期截断语义):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/sqltext/awr_top.sql:134 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.minus | corpus/billing-demo/sqltext/awr_top.sql:141 | MINUS 集合操作符:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 MINUS 验证提示 语义等价改 EXCEPT(隐含 DISTINCT 语义两者一致);注意 sqlglot 解析后无法区分 MINUS/EXCEPT 原文,本规则用正则保住原文证据 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/sqltext/awr_top.sql:155 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM BILL_DETAIL BD, ACCT_INFO AI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | minor | syntax | ora.hint.optimizer_hint | corpus/billing-demo/sqltext/awr_top.sql:155 | Optimizer Hint(/*+ ... */):OceanBase 4.3.5 Oracle 模式 部分支持(约 60+ hint 白名单(APPEND/FULL/INDEX/LEADING/PARALLEL 系/NO_* 系/OUTLINE 对等);未知 hint 静默失效,建议 keep_supported 清洗并做性能回归;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 /*+ INDEX(BD IDX_BILL_DETAIL_ACCT) FULL(CI) */ 验证提示 源工具用词法级过滤器(区分字符串/注释/q-quote)按白名单清洗:默认 keep_supported 策略, OB Oracle 模式约 60+ 个 hint 在白名单(APPEND/FULL/INDEX/LEADING/PARALLEL 系/NO_* 系等), 未知 hint 删除并采样上报。不兼容 hint 不报错但静默失效,性能回归需专项测
|
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.alter_session | corpus/billing-demo/sqltext/ops_scripts.sql:7 | ALTER SESSION SET 会话参数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 ALTER SESSION SET 验证提示 目标端改 SET 参数语句,但参数名基本不同(NLS_DATE_FORMAT→datestyle 等),逐参数映射;CLOSE DATABASE LINK、ADVISE、COMMIT IN PROCEDURE、GUARD 子形态无通用等价物;连接池初始化 SQL 里的该类语句最易漏改 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.alter_session | corpus/billing-demo/sqltext/ops_scripts.sql:10 | ALTER SESSION SET 会话参数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 ALTER SESSION SET 验证提示 目标端改 SET 参数语句,但参数名基本不同(NLS_DATE_FORMAT→datestyle 等),逐参数映射;CLOSE DATABASE LINK、ADVISE、COMMIT IN PROCEDURE、GUARD 子形态无通用等价物;连接池初始化 SQL 里的该类语句最易漏改 |
|||||
| oceanbase:4.3.5:oracle | minor | syntax | ora.syntax.sqlplus_exec | corpus/billing-demo/sqltext/ops_scripts.sql:13 | SQL*Plus EXEC/EXECUTE 元命令行:OceanBase 4.3.5 Oracle 模式 部分支持(obclient 对 SQL*Plus 元命令(EXEC/SET 等)的兼容面待真库验证;不支持时改 CALL/SELECT;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 EXEC DBMS_JOB.RUN 验证提示 运维/发布脚本高发:EXEC/HOST/SPOOL/WHENEVER/SET SERVEROUTPUT 是 SQL*Plus 客户端命令不是 SQL,目标端 CLI 改 CALL proc(...) 或改发布脚本流程 |
|||||
| oceanbase:4.3.5:oracle | major | plsql | ora.plsql.dbms_scheduler | corpus/billing-demo/sqltext/ops_scripts.sql:13 | DBMS_SCHEDULER / DBMS_JOB 调度作业:OceanBase 4.3.5 Oracle 模式 部分支持(JOB/SCHEDULE 转换产物不认证自动执行,仅作改造参考;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 DBMS_JOB.RUN 验证提示 源工具把 JOB/SCHEDULE 整族定为 manual("Scheduler and job semantics are not certified for automatic execution"),转换产物只作参考。补盲扫描只认静态字面量的 CREATE_JOB/CREATE_SCHEDULE,job_name 为变量拼接时仅报 unresolved 不盲猜——dbca 同款原则
|
|||||
| oceanbase:4.3.5:oracle | minor | syntax | ora.syntax.sqlplus_exec | corpus/billing-demo/sqltext/ops_scripts.sql:16 | SQL*Plus EXEC/EXECUTE 元命令行:OceanBase 4.3.5 Oracle 模式 部分支持(obclient 对 SQL*Plus 元命令(EXEC/SET 等)的兼容面待真库验证;不支持时改 CALL/SELECT;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 EXEC DBMS_JOB.SUBMIT 验证提示 运维/发布脚本高发:EXEC/HOST/SPOOL/WHENEVER/SET SERVEROUTPUT 是 SQL*Plus 客户端命令不是 SQL,目标端 CLI 改 CALL proc(...) 或改发布脚本流程 |
|||||
| oceanbase:4.3.5:oracle | major | plsql | ora.plsql.dbms_scheduler | corpus/billing-demo/sqltext/ops_scripts.sql:16 | DBMS_SCHEDULER / DBMS_JOB 调度作业:OceanBase 4.3.5 Oracle 模式 部分支持(JOB/SCHEDULE 转换产物不认证自动执行,仅作改造参考;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 DBMS_JOB.SUBMIT 验证提示 源工具把 JOB/SCHEDULE 整族定为 manual("Scheduler and job semantics are not certified for automatic execution"),转换产物只作参考。补盲扫描只认静态字面量的 CREATE_JOB/CREATE_SCHEDULE,job_name 为变量拼接时仅报 unresolved 不盲猜——dbca 同款原则
|
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.flashback_query | corpus/billing-demo/sqltext/ops_scripts.sql:19 | FLASHBACK 查询(AS OF SCN/TIMESTAMP、VERSIONS BETWEEN):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 AS OF TIMESTAMP 验证提示 依赖 UNDO 的时间点查询无通用等价物;评估业务用途(误删恢复/审计对账)后改为历史表/审计日志方案,openGauss 的 TIMECAPSULE 语法不同且有存储引擎前提 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.not_in_subquery | corpus/billing-demo/sqltext/ops_scripts.sql:24 | NOT IN 子查询:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 NOT IN ( SELECT 验证提示 子查询列含 NULL 时 NOT IN 语义易踩坑;常改 NOT EXISTS 并补空值用例与执行计划验证。 |
|||||
| oceanbase:4.3.5:oracle | critical | syntax | ora.syntax.rowid_qualified | corpus/billing-demo/sqltext/ops_scripts.sql:24 | 别名限定的 ROWID 伪列引用(BD.ROWID):OceanBase 4.3.5 Oracle 模式 部分支持(支持 ROWID 伪列(基于主键编码的逻辑 ROWID);与 Oracle 物理 ROWID 值语义不同,持久化/解析 ROWID 值的用法需复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 BD.ROWID 验证提示 与 ora.syntax.rowid_pseudocolumn(未限定形态)互补,仅命中限定形态避免双报;典型场景是多表/自连接去重(MIN(D.ROWID))。若限定名恰是真实列(罕见)会误报,按证据行人工排除。集成提示——matcher 已支持 pseudocolumn qualified=true,原规则改 qualified 后可收编本条 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/sqltext/ops_scripts.sql:33 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM ACCT_BILL B, OWE_BILL O 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.for_update_wait | corpus/billing-demo/sqltext/ops_scripts.sql:40 | FOR UPDATE WAIT n 超时等待子句:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FOR UPDATE WAIT 3 验证提示 PG 系只有 NOWAIT/SKIP LOCKED,无 WAIT n;等待超时需改会话级 lock_timeout 参数模拟,错误码与应用重试逻辑需联动改 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.trunc | corpus/billing-demo/sqltext/ops_scripts.sql:43 | TRUNC 函数(日期截断语义):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'MM') 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/sqltext/ops_scripts.sql:43 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.interval_conversion | corpus/billing-demo/sqltext/ops_scripts.sql:46 | NUMTOYMINTERVAL / NUMTODSINTERVAL / TO_YMINTERVAL / TO_DSINTERVAL:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 NUMTODSINTERVAL( 验证提示 常见于 INTERVAL 分区定义与日期偏移计算;PG 系改 make_interval 或 interval 字面量乘法,注意月/日不可混算的 Oracle 约束在目标端放宽后行为变化 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.trunc | corpus/billing-demo/sqltext/ops_scripts.sql:49 | TRUNC 函数(日期截断语义):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/sqltext/ops_scripts.sql:49 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:13 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:31 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/ddl/schema.sql:43 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:57 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.harvest_ora2pg_round_numeric_scale | corpus/billing-demo/ddl/schema.sql:70 | ROUND 数值精度参数改写:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 ROUND(BALANCE / 100, 2) 验证提示 第二参数限整数字面量、bind 或标识符并排除日期格式字符串;标识符仍可能是日期格式变量,需结合首参类型复核;首参支持两层括号嵌套 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/ddl/schema.sql:81 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:81 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/ddl/schema.sql:92 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:92 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | minor | object | ora.column.identity | corpus/billing-demo/ddl/schema.sql:92 | IDENTITY 自增列:OceanBase 4.3.5 Oracle 模式 部分支持(跨 schema 写入需对内部序列 ISEQ$$_* 补 SELECT 授权,否则表权限齐全 INSERT 仍失败;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 GENERATED ALWAYS AS IDENTITY 改写建议 按目标 identity 语法映射 ALWAYS/BY DEFAULT/ON NULL、起点和步长;目标不等价时改显式 sequence+default 并补内部序列权限 验证提示 判定条件:列声明 GENERATED ALWAYS/BY DEFAULT [ON NULL] AS IDENTITY;普通虚拟列或显式 sequence default 不命中。 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:105 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | minor | object | ora.column.default_on_null | corpus/billing-demo/ddl/schema.sql:105 | DEFAULT ON NULL 列默认值:OceanBase 4.3.5 Oracle 模式 部分支持(依据公开文档评估,建议以 PoC 复核) |
|
证据片段 DEFAULT ON NULL 验证提示 与普通 DEFAULT 语义不同(显式插入 NULL 也会被替换成默认值);源工具单列 reason code 对比,目标不支持时降级为普通 DEFAULT 会改变行为 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:122 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:136 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:168 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | major | object | ora.object.iot | corpus/billing-demo/ddl/schema.sql:168 | 索引组织表(ORGANIZATION INDEX):OceanBase 4.3.5 Oracle 模式 部分支持(无 ORGANIZATION INDEX 子句;OB 表本身索引组织,去子句按普通表+主键建,OVERFLOW/PCTTHRESHOLD 无对应;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 ORGANIZATION INDEX 验证提示 源工具按黑名单(IOT)分流;常见改造是去掉 ORGANIZATION INDEX/OVERFLOW/PCTTHRESHOLD 子句按普通表+主键建,需评估点查性能与二级索引回表行为 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:192 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.interval_conversion | corpus/billing-demo/ddl/schema.sql:219 | NUMTOYMINTERVAL / NUMTODSINTERVAL / TO_YMINTERVAL / TO_DSINTERVAL:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 NUMTOYMINTERVAL( 验证提示 常见于 INTERVAL 分区定义与日期偏移计算;PG 系改 make_interval 或 interval 字面量乘法,注意月/日不可混算的 Oracle 约束在目标端放宽后行为变化 |
|||||
| oceanbase:4.3.5:oracle | major | object | ora.partition.interval | corpus/billing-demo/ddl/schema.sql:219 | INTERVAL 自动分区:OceanBase 4.3.5 Oracle 模式 部分支持(4.4.2+ 原生 interval;4.3.5 需按 cutoff 预建分区滚动补齐,分区定义漂移只报告不自动重分区;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 PARTITION BY RANGE (BILL_DATE) INTERVAL ( 改写建议 目标原生 INTERVAL 时逐项保留表达式、最高显式 RANGE 分区上界定义的过渡点和子分区模板;否则移除自动扩展,按该过渡点至业务 horizon 预建等价 RANGE 分区,并部署幂等滚动作业在写入前继续预建,同时替换依赖自动分区名的运维 SQL 验证提示 判定条件:RANGE 分区后声明 INTERVAL 自动扩展;需提取 interval 表达式、最高显式 RANGE 分区上界(transition point)、分区键类型、既有/复合分区、自动分区名及依赖该名的运维 SQL,并核对目标版本能力。 |
|||||
| oceanbase:4.3.5:oracle | critical | object | ora.object.external_table | corpus/billing-demo/ddl/schema.sql:233 | 外部表(ORGANIZATION EXTERNAL):OceanBase 4.3.5 Oracle 模式 不支持(Oracle 外部表黑名单;改 ETL 装载或 OB 外表方案;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 ORGANIZATION EXTERNAL 验证提示 依赖 DIRECTORY 与服务器本地文件,需整体改造为 ETL 装载或对象存储外表方案;源工具将其列入黑名单不生成 DDL |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:251 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/ddl/schema.sql:268 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:268 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:281 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:306 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/ddl/schema.sql:317 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:333 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:351 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:361 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:370 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(1) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | info | type | ora.type.char_padding | corpus/billing-demo/ddl/schema.sql:381 | CHAR 定长补空格类型:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CHAR(2) 验证提示 定长补空格比较语义两端接近但不完全一致(与 VARCHAR 比较时 Oracle 用非填充语义、尾随空格是否参与比较随排序规则变化);'abc' 与 'abc ' 的等值判断必测 |
|||||
| oceanbase:4.3.5:oracle | minor | object | ora.ddl.container_clauses | corpus/billing-demo/ddl/schema.sql:392 | CDB/多租户与排序规则 DDL 子句(SHARING / DEFAULT COLLATION / CONTAINER_MAP):OceanBase 4.3.5 Oracle 模式 不支持(SHARING= / DEFAULT COLLATION / CONTAINER_MAP / CONTAINERS_DEFAULT 无对应概念,移除无语义损失;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SHARING = METADATA 验证提示 Oracle 12c+ CDB/应用容器专属修饰,目标端无对应概念;源工具直接移除(unverified 证据级别),移除本身无业务语义损失 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/ddl/schema.sql:400 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | major | object | ora.object.gtt | corpus/billing-demo/ddl/schema.sql:409 | 全局临时表(GLOBAL TEMPORARY TABLE):OceanBase 4.3.5 Oracle 模式 部分支持(4.3.5 无原生 GTT(4.4.2+ 支持);可去 GTT 子句按普通表迁结构,ON COMMIT 事务清理语义丢失需人工确认,且不应进数据迁移规则;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CREATE GLOBAL TEMPORARY TABLE 验证提示 源工具提供 rewrite_to_normal/preserve_original/blocked 三种模式:改普通表时移除 GLOBAL TEMPORARY 与 ON COMMIT 子句,"结构可迁、事务级数据清理语义丢失需人工确认", 且改造表不进入数据迁移(OMS)规则。并发会话数据隔离是最大回归风险点
|
|||||
| oceanbase:4.3.5:oracle | major | object | ora.seq.order | corpus/billing-demo/ddl/schema.sql:437 | 序列 ORDER 属性:OceanBase 4.3.5 Oracle 模式 部分支持(ORDER 出号语义在分布式下与 Oracle RAC 不同;LAST_NUMBER 值同步需业务窗口执行 RESTART;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CREATE SEQUENCE SEQ_PAY_LOG START WITH 100000001 INCREMENT BY 1 CACHE 100 ORDER 改写建议 SESSION 序列忽略 ORDER,已由匹配边界排除;普通 GLOBAL/NOSCALE/NOSHARD 序列若仅需唯一可去除 ORDER 并记录语义放宽,若需全局单调则使用目标有序序列或独立发号服务。割接须冻结全部取号方,在每个源实例失效或放弃已预取 CACHE(无法保证时停止源实例),并确认任何实例不得恢复取号;随后盘点 INCREMENT、MINVALUE/MAXVALUE/CYCLE、ORDER 及扩展属性,再执行受控 NEXTVAL。探针值已被消耗并保留不用,按步长、方向和边界计算其受控 NEXTVAL 后继,将合法后继设为目标首个精确 next transition。LAST_NUMBER 是缓存相关的后续值而非当前值,max used 也不含未落表调用,二者均不得单独作起点。SCALE/SHARD(以及影响编号构成的扩展)不能套普通算术后继,必须走专用迁移或人工阻断;NOCYCLE 已耗尽或探针位于终值时没有合法后继,须保留耗尽状态并阻断取号,禁止伪造回绕 验证提示 判定条件:CREATE SEQUENCE 显式声明 ORDER,且业务确实依赖跨实例取号顺序;NOORDER 和仅要求唯一的序列不命中。 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/ddl/schema.sql:462 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM SERV_INFO S, ACCT_INFO A 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | minor | object | ora.ddl.view_force | corpus/billing-demo/ddl/schema.sql:462 | CREATE FORCE VIEW:OceanBase 4.3.5 Oracle 模式 部分支持(FORCE/NO FORCE 关键字不支持需移除;移除后依赖缺失时建视图直接失败,需依赖排序兜底;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CREATE OR REPLACE FORCE VIEW 验证提示 源工具自动移除 FORCE/NO FORCE(clean_view_force_keyword,证据级别 verified_unsupported)。 语义损失点:FORCE 允许依赖缺失时先建 INVALID 视图,移除后建视图动作在依赖未就绪时直接失败, 部署顺序需依赖排序兜底
|
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.harvest_ora2pg_substr_nonnegative | corpus/billing-demo/ddl/schema.sql:469 | SUBSTR 非负起点语义:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SUBSTR(CERT_NBR, 1, 6) 验证提示 命中静态非负或符号未知的动态起点,仅与负整数字面量规则互斥;动态起点运行时可能为负,且 Oracle start=0 边界不同,必须人工复核 |
|||||
| oceanbase:4.3.5:oracle | info | behavior | ora.behavior.concat_null | corpus/billing-demo/ddl/schema.sql:469 | 字符串拼接 || 的 NULL 语义:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 || 验证提示 判定条件:使用 || 且操作数可能为 NULL 或空串;规则无法推断可空性,须结合元数据和数据迁移策略确认,常量非空链可排除。 |
|||||
| oceanbase:4.3.5:oracle | minor | object | ora.ddl.bequeath | corpus/billing-demo/ddl/schema.sql:469 | 视图 BEQUEATH 子句:OceanBase 4.3.5 Oracle 模式 不支持(BEQUEATH CURRENT_USER/DEFINER 需移除;CURRENT_USER 视图回落 DEFINER 语义,权限敏感场景人工确认;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 BEQUEATH CURRENT_USER 验证提示 源工具移除该子句但证据级别标 unverified;BEQUEATH CURRENT_USER 视图(调用者权限)被移除后回落 DEFINER 语义,涉及 VPD/权限敏感场景需人工确认 |
|||||
| oceanbase:4.3.5:oracle | minor | object | ora.ddl.view_check_option | corpus/billing-demo/ddl/schema.sql:476 | 视图 WITH CHECK OPTION(含命名 CONSTRAINT):OceanBase 4.3.5 Oracle 模式 部分支持(4.2.5.7+ 支持 WITH CHECK OPTION(4.3.5 满足);join 视图上不支持;不支持 CONSTRAINT 命名子句;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 WITH CHECK OPTION 验证提示 源工具三段式处理:目标 OB<4.2.5.7 整体移除;join 视图上的 CHECK OPTION 一律移除 (verified unsupported);"WITH CHECK OPTION CONSTRAINT <name>" 保留 CHECK OPTION、 仅去掉命名 CONSTRAINT 子句。移除即放弃写入校验语义,需在报告中显式标注
|
|||||
| oceanbase:4.3.5:oracle | minor | object | ora.ddl.editionable | corpus/billing-demo/ddl/schema.sql:483 | EDITIONABLE / NONEDITIONABLE 关键字:OceanBase 4.3.5 Oracle 模式 不支持(无 edition 概念,EDITIONABLE/NONEDITIONABLE 关键字移除即可;若源库真用多 edition 发布则属流程改造;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 EDITIONABLE 验证提示 DBMS_METADATA 导出的 VIEW/PLSQL/TRIGGER 头几乎必带;源工具全对象类型自动移除 (verified unsupported),无语义损失——除非源库真用了多 Edition 在线发布, 那属于发布流程改造。触发器头重写时注意别把 ON 关键字误当对象名
|
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/ddl/schema.sql:489 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM ACCT_BILL B, ACCT_INFO A 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | info | object | ora.mview.auto_refresh | corpus/billing-demo/ddl/schema.sql:495 | 物化视图自动/增量刷新子句:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CREATE MATERIALIZED VIEW 验证提示 对象本身可支持不代表 FAST/ON COMMIT/START WITH/NEXT 刷新链路可迁移;刷新日志与调度需分别盘点 |
|||||
| oceanbase:4.3.5:oracle | major | object | ora.object.mview | corpus/billing-demo/ddl/schema.sql:495 | 物化视图(MATERIALIZED VIEW):OceanBase 4.3.5 Oracle 模式 部分支持(comparator 在目标 <4.4.2 时按仅打印/manual;刷新方式(FAST/ON COMMIT/MV LOG)与查询特性差异需逐个核对;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CREATE MATERIALIZED VIEW 验证提示 源工具将 MVIEW fixup 归为 manual family(兼容性随刷新方式与查询特性变化),且按目标版本门控(OB>=4.4.2 才自动纳入校验);REFRESH FAST/ON COMMIT/MV LOG 链路需逐个评估 |
|||||
| oceanbase:4.3.5:oracle | major | object | ora.synonym.public | corpus/billing-demo/ddl/schema.sql:508 | PUBLIC 同义词:OceanBase 4.3.5 Oracle 模式 部分支持(支持 PUBLIC 同义词;但以 PUBLIC 为目标 owner 的引用语义不确定,按 manual 处理;部分版本字典 owner 呈 __public 形态;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CREATE PUBLIC SYNONYM 验证提示 源工具对 Oracle 源默认只管 PUBLIC 同义词(synonym_check_scope=public_only); 定义级对比覆盖 owner/目标对象/DBLINK/PUBLIC 边界。特别注意:目标 owner 为 PUBLIC 的 引用语义不确定,源工具按 manual-only 不自动生成替换 SQL
|
|||||
| oceanbase:4.3.5:oracle | major | object | ora.synonym.public | corpus/billing-demo/ddl/schema.sql:509 | PUBLIC 同义词:OceanBase 4.3.5 Oracle 模式 部分支持(支持 PUBLIC 同义词;但以 PUBLIC 为目标 owner 的引用语义不确定,按 manual 处理;部分版本字典 owner 呈 __public 形态;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CREATE PUBLIC SYNONYM 验证提示 源工具对 Oracle 源默认只管 PUBLIC 同义词(synonym_check_scope=public_only); 定义级对比覆盖 owner/目标对象/DBLINK/PUBLIC 边界。特别注意:目标 owner 为 PUBLIC 的 引用语义不确定,源工具按 manual-only 不自动生成替换 SQL
|
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/ddl/schema.sql:527 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | behavior | ora.behavior.concat_null | corpus/billing-demo/ddl/schema.sql:527 | 字符串拼接 || 的 NULL 语义:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 || 验证提示 判定条件:使用 || 且操作数可能为 NULL 或空串;规则无法推断可空性,须结合元数据和数据迁移策略确认,常量非空链可排除。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.trunc | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | TRUNC 函数(日期截断语义):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/plsql/prc_batch_billing.sql:4 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.harvest_ora2pg_substr_nonnegative | corpus/billing-demo/plsql/prc_credit_check.sql:2 | SUBSTR 非负起点语义:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SUBSTR(CUST_CODE, 1, 10) 验证提示 命中静态非负或符号未知的动态起点,仅与负整数字面量规则互斥;动态起点运行时可能为负,且 Oracle start=0 边界不同,必须人工复核 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_number | corpus/billing-demo/plsql/prc_credit_check.sql:2 | TO_NUMBER 函数(格式模型与容错子句):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_NUMBER(SUBSTR(CUST_CODE, 1, 10)) 验证提示 判定条件:调用 TO_NUMBER;需区分单参数、完整数值格式/NLS 及 DEFAULT ON CONVERSION ERROR,并保留转换错误的精确捕获范围。 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.connect_by_function_operand | corpus/billing-demo/plsql/prc_credit_check.sql:2 | CONNECT BY 操作数含函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 START WITH CUST_ID = p_group_cust_id CONNECT BY PRIOR CUST_ID = TO_NUMBER(SUBSTR(CUST_CODE, 1, 10)) 验证提示 判定条件:CONNECT BY 的 PRIOR 连接表达式含已登记函数;普通父子键连接不命中,复杂未知表达式继续 uncovered 而非外推。 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/plsql/prc_credit_check.sql:2 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM ACCT_INFO A, MV_ACCT_OWE M 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_char | corpus/billing-demo/plsql/prc_credit_check.sql:2 | TO_CHAR 函数(日期/数值格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_CHAR(SYSDATE, 'YYYYMMDDHH24MISS') 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/plsql/prc_credit_check.sql:2 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | behavior | ora.behavior.concat_null | corpus/billing-demo/plsql/prc_credit_check.sql:2 | 字符串拼接 || 的 NULL 语义:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 || 验证提示 判定条件:使用 || 且操作数可能为 NULL 或空串;规则无法推断可空性,须结合元数据和数据迁移策略确认,常量非空链可排除。 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.for_update_of | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | SELECT ... FOR UPDATE OF 列级锁定写法:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FOR UPDATE OF 验证提示 Oracle 的 OF 接"列名"(锁定该列所在表的行);PG 系 FOR UPDATE OF 接"表别名"——语法迁移必须把列改成表引用,多表连接场景锁范围需重审 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.for_update_wait | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | FOR UPDATE WAIT n 超时等待子句:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FOR UPDATE OF BALANCE WAIT 5 验证提示 PG 系只有 NOWAIT/SKIP LOCKED,无 WAIT n;等待超时需改会话级 lock_timeout 参数模拟,错误码与应用重试逻辑需联动改 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.returning_into | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | DML RETURNING ... INTO 子句:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 RETURNING BALANCE INTO 验证提示 PG 系 RETURNING 子句无 INTO(结果作为结果集返回,PL/pgSQL 里才有 INTO);JDBC 侧 getGeneratedKeys/RETURNING 结果集两种取值路径需应用配合改 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/plsql/prc_deduct_balance.sql:4 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/plsql/prc_month_rebill.sql:2 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM BILL_DETAIL D, ADJUST_LOG J 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.for_update_of | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | SELECT ... FOR UPDATE OF 列级锁定写法:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FOR UPDATE OF 验证提示 Oracle 的 OF 接"列名"(锁定该列所在表的行);PG 系 FOR UPDATE OF 接"表别名"——语法迁移必须把列改成表引用,多表连接场景锁范围需重审 |
|||||
| oceanbase:4.3.5:oracle | info | behavior | ora.behavior.date_arithmetic | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | 日期直接加减数字(天数运算):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE - 1 验证提示 判定条件:静态命中 SYSDATE/SYSTIMESTAMP 与数字直接加减;数字单位为天,且 TIMESTAMP 与 NUMBER 运算在 Oracle 会先降为 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_char | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | TO_CHAR 函数(日期/数值格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_CHAR(SEQ_MSG_ID.NEXTVAL) 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| oceanbase:4.3.5:oracle | info | behavior | ora.behavior.concat_null | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | 字符串拼接 || 的 NULL 语义:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 || 验证提示 判定条件:使用 || 且操作数可能为 NULL 或空串;规则无法推断可空性,须结合元数据和数据迁移策略确认,常量非空链可排除。 |
|||||
| oceanbase:4.3.5:oracle | major | syntax | ora.syntax.where_current_of | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | WHERE CURRENT OF 游标定位 DML:OceanBase 4.3.5 Oracle 模式 不支持(游标定位 DML 改主键/唯一键定位;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 WHERE CURRENT OF 验证提示 游标定位更新/删除需改为主键或稳定唯一键定位;若原逻辑依赖 ROWID,应连同 ROWID 规则一起改造。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/plsql/prc_sync_crm_cust.sql:2 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | major | object | ora.object.dblink_ref | corpus/billing-demo/plsql/prc_sync_crm_cust.sql:2 | DBLINK 引用(obj@link):OceanBase 4.3.5 Oracle 模式 部分支持(依据公开文档评估,建议以 PoC 复核) |
|
证据片段 CRM_CUST_INFO@DBLINK_CRM 验证提示 源工具默认 view_dblink_policy=block:含 DBLINK 的 VIEW 不自动修补、单列风险报告 (VIEW_DBLINK_RESIDUAL)。实现时必须先掩码字符串字面量再匹配 @,否则邮箱等文本误报
|
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.harvest_ora2pg_substr_nonnegative | corpus/billing-demo/plsql/prc_write_oplog.sql:3 | SUBSTR 非负起点语义:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SUBSTR(p_content, 1, 1000) 验证提示 命中静态非负或符号未知的动态起点,仅与负整数字面量规则互斥;动态起点运行时可能为负,且 Oracle start=0 边界不同,必须人工复核 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/plsql/prc_write_oplog.sql:3 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.for_update_of | corpus/billing-demo/mapper/AcctBalanceMapper.xml:14 | SELECT ... FOR UPDATE OF 列级锁定写法:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FOR UPDATE OF 验证提示 Oracle 的 OF 接"列名"(锁定该列所在表的行);PG 系 FOR UPDATE OF 接"表别名"——语法迁移必须把列改成表引用,多表连接场景锁范围需重审 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.for_update_wait | corpus/billing-demo/mapper/AcctBalanceMapper.xml:14 | FOR UPDATE WAIT n 超时等待子句:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FOR UPDATE OF BALANCE WAIT 5 验证提示 PG 系只有 NOWAIT/SKIP LOCKED,无 WAIT n;等待超时需改会话级 lock_timeout 参数模拟,错误码与应用重试逻辑需联动改 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/mapper/AcctBalanceMapper.xml:31 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.merge_update_delete | corpus/billing-demo/mapper/AcctBalanceMapper.xml:53 | MERGE 的 UPDATE ... DELETE WHERE 组合子句:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 WHEN MATCHED THEN UPDATE SET T.BALANCE = T.BALANCE - S.FEE DELETE WHERE 验证提示 判定条件:MERGE 的 MATCHED UPDATE 后紧跟 DELETE WHERE;该谓词读取更新后值且只删除本次 UPDATE 命中行,必须保留原子范围与触发器顺序。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.trunc | corpus/billing-demo/mapper/AcctBalanceMapper.xml:65 | TRUNC 函数(日期截断语义):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TRUNC(SYSDATE, 'DD') 验证提示 判定条件:调用 TRUNC;必须按元数据区分日期/数值,日期 W/WW/D 需要锚点与 NLS_TERRITORY,且日期分支总是返回 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/mapper/AcctBalanceMapper.xml:65 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/AcctBalanceMapper.xml:83 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/AcctBalanceMapper.xml:115 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM ACCT_BALANCE B, ACCT_INFO A 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_char | corpus/billing-demo/mapper/AcctBalanceMapper.xml:126 | TO_CHAR 函数(日期/数值格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_CHAR(CREATE_TIME, 'YYYYMM') 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.function_wrapped_column | corpus/billing-demo/mapper/AcctBalanceMapper.xml:126 | 谓词中函数包裹列:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_CHAR(CREATE_TIME, 'YYYYMM') = 验证提示 函数包列常导致普通索引失效;改写为列原生范围条件或补函数索引需结合目标优化器验证。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.listagg | corpus/billing-demo/mapper/AcctBillMapper.xml:14 | LISTAGG 聚合函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 LISTAGG(S.SERV_NBR, ',') WITHIN GROUP (ORDER BY S.SERV_NBR) 验证提示 判定条件:调用 LISTAGG;需分别识别聚合/分析形态、DISTINCT、WITHIN GROUP 顺序和 ON OVERFLOW 契约。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.wm_concat | corpus/billing-demo/mapper/AcctBillMapper.xml:23 | WM_CONCAT 未公开聚合函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 WM_CONCAT(S.SERV_NBR) 验证提示 判定条件:源码调用未公开的 WM_CONCAT/wmsys.wm_concat;先确认业务只依赖值集合还是错误地依赖历史返回顺序。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.keep_dense_rank | corpus/billing-demo/mapper/AcctBillMapper.xml:31 | KEEP (DENSE_RANK FIRST/LAST) 聚合子句:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 KEEP (DENSE_RANK 验证提示 判定条件:聚合函数后含 KEEP (DENSE_RANK FIRST|LAST ORDER BY ...);并列首/尾行必须作为集合继续执行原聚合,并区分分组聚合与 analytic OVER 窗口形态。 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.minus | corpus/billing-demo/mapper/AcctBillMapper.xml:40 | MINUS 集合操作符:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 MINUS 验证提示 语义等价改 EXCEPT(隐含 DISTINCT 语义两者一致);注意 sqlglot 解析后无法区分 MINUS/EXCEPT 原文,本规则用正则保住原文证据 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.xml_functions | corpus/billing-demo/mapper/AcctBillMapper.xml:47 | SQL/XML 函数族(XMLELEMENT / XMLAGG / XMLTABLE 等):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 XMLSERIALIZE( 验证提示 PG 系有 SQL/XML 标准子集(xmlelement/xmlagg/xmltable)但无 XMLTYPE 对象方法与 Oracle 扩展子句;XPath 方言与命名空间处理需逐条核对 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.greatest_least | corpus/billing-demo/mapper/AcctBillMapper.xml:58 | GREATEST / LEAST 函数(NULL 传播差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 GREATEST( 验证提示 Oracle 任一参数为 NULL 即返回 NULL;PG 系忽略 NULL 取其余值——结果静默不同,含可空列的调用必须包 NVL/COALESCE 或改写 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.empty_lob | corpus/billing-demo/mapper/AcctBillMapper.xml:65 | EMPTY_CLOB / EMPTY_BLOB 函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 EMPTY_CLOB( 验证提示 LOB 定位器初始化写法是 Oracle 特有(常配合 RETURNING INTO + DBMS_LOB 写入);目标端直接写空串/空 bytea 即可,但注意 Oracle 中空 LOB 与 NULL 不同、迁移后该区分消失 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/AcctBillMapper.xml:115 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM ACCT_BILL CUR, ACCT_BILL PREV 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/AcctBillMapper.xml:125 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/AcctBillMapper.xml:137 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM INVOICE_INFO I, ACCT_BILL B 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/mapper/AcctBillMapper.xml:147 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/ArchiveMapper.xml:7 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | critical | app_layer | ora.app.mybatis_dollar_object | corpus/billing-demo/mapper/ArchiveMapper.xml:7 | MyBatis ${} 拼接对象名(表名/FROM/JOIN 位):OceanBase 4.3.5 Oracle 模式 不支持(目标无关的应用层风险:${} 拼接无法静态评估兼容性且有注入面;改;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 INTO ARCH_BILL_DETAIL_${archMonth}验证提示 原文通道(raw_text)匹配 sample_text,不剥字面量——字符串里的同形文本会计入,按证据行人工排除。表名拼接(分月表/归档表)无法静态评估目标兼容性且有注入面;改白名单映射或 MyBatis-Plus 动态表名插件,禁止透传外部输入 |
|||||
| oceanbase:4.3.5:oracle | critical | app_layer | ora.app.mybatis_dollar_object | corpus/billing-demo/mapper/ArchiveMapper.xml:18 | MyBatis ${} 拼接对象名(表名/FROM/JOIN 位):OceanBase 4.3.5 Oracle 模式 不支持(目标无关的应用层风险:${} 拼接无法静态评估兼容性且有注入面;改;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM ${archTable}验证提示 原文通道(raw_text)匹配 sample_text,不剥字面量——字符串里的同形文本会计入,按证据行人工排除。表名拼接(分月表/归档表)无法静态评估目标兼容性且有注入面;改白名单映射或 MyBatis-Plus 动态表名插件,禁止透传外部输入 |
|||||
| oceanbase:4.3.5:oracle | critical | syntax | ora.syntax.rowid_pseudocolumn | corpus/billing-demo/mapper/ArchiveMapper.xml:23 | ROWID 伪列引用:OceanBase 4.3.5 Oracle 模式 部分支持(支持 ROWID 伪列(基于主键编码的逻辑 ROWID);与 Oracle 物理 ROWID 值语义不同,持久化/解析 ROWID 值的用法需复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 ROWID 验证提示 物理行地址语义(常用于去重/批量更新定位/游标复位)无等价物;ctid 不稳定(VACUUM/更新会变)不能直接替代,需按用途改主键/唯一键方案 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.not_in_subquery | corpus/billing-demo/mapper/ArchiveMapper.xml:23 | NOT IN 子查询:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 NOT IN ( SELECT 验证提示 子查询列含 NULL 时 NOT IN 语义易踩坑;常改 NOT EXISTS 并补空值用例与执行计划验证。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.add_months | corpus/billing-demo/mapper/ArchiveMapper.xml:43 | ADD_MONTHS 函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 ADD_MONTHS(SYSDATE, -12) 验证提示 判定条件:调用 ADD_MONTHS(date, n);月定义来自 NLS_CALENDAR,月末规则特殊,且无论输入 datetime 类型均返回 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/mapper/ArchiveMapper.xml:43 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_date | corpus/billing-demo/mapper/ArchiveMapper.xml:52 | TO_DATE 函数(格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_DATE(:p, 'YYYYMMDD') 验证提示 判定条件:调用 TO_DATE;先查字符或 DATE/datetime 参数,再区分单参数、显式格式/NLS 与 DEFAULT ON CONVERSION ERROR,保留类型和错误边界。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_date | corpus/billing-demo/mapper/ArchiveMapper.xml:60 | TO_DATE 函数(格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_DATE(:p, 'YYYYMMDD') 验证提示 判定条件:调用 TO_DATE;先查字符或 DATE/datetime 参数,再区分单参数、显式格式/NLS 与 DEFAULT ON CONVERSION ERROR,保留类型和错误边界。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_date | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | TO_DATE 函数(格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_DATE(:p, 'YYYYMMDD') 验证提示 判定条件:调用 TO_DATE;先查字符或 DATE/datetime 参数,再区分单参数、显式格式/NLS 与 DEFAULT ON CONVERSION ERROR,保留类型和错误边界。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_date | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | TO_DATE 函数(格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_DATE(:p, 'YYYYMMDD') 验证提示 判定条件:调用 TO_DATE;先查字符或 DATE/datetime 参数,再区分单参数、显式格式/NLS 与 DEFAULT ON CONVERSION ERROR,保留类型和错误边界。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:19 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/BillDetailMapper.xml:41 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM BILL_DETAIL BD, CUST_INFO CI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | minor | syntax | ora.hint.optimizer_hint | corpus/billing-demo/mapper/BillDetailMapper.xml:41 | Optimizer Hint(/*+ ... */):OceanBase 4.3.5 Oracle 模式 部分支持(约 60+ hint 白名单(APPEND/FULL/INDEX/LEADING/PARALLEL 系/NO_* 系/OUTLINE 对等);未知 hint 静默失效,建议 keep_supported 清洗并做性能回归;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 /*+ INDEX(BD IDX_BILL_DETAIL_ACCT) FULL(CI) PARALLEL(BD 4) */ 验证提示 源工具用词法级过滤器(区分字符串/注释/q-quote)按白名单清洗:默认 keep_supported 策略, OB Oracle 模式约 60+ 个 hint 在白名单(APPEND/FULL/INDEX/LEADING/PARALLEL 系/NO_* 系等), 未知 hint 删除并采样上报。不兼容 hint 不报错但静默失效,性能回归需专项测
|
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/BillDetailMapper.xml:51 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM BILL_DETAIL BD, TARIFF_ITEM TI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_char | corpus/billing-demo/mapper/BillDetailMapper.xml:60 | TO_CHAR 函数(日期/数值格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_CHAR(BD.BILL_DATE, 'YYYYMM') 验证提示 判定条件:调用 TO_CHAR;先区分数值、DATE/TIMESTAMP、TIMESTAMP WITH LOCAL TIME ZONE 与 INTERVAL,并清点格式、NLS 和 session time zone。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.sysdate | corpus/billing-demo/mapper/BillDetailMapper.xml:69 | SYSDATE 伪函数:OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE 验证提示 SYSDATE 是服务器时区、语句内每次求值;改 CURRENT_TIMESTAMP/now() 时注意事务内冻结语义与时区来源差异 |
|||||
| oceanbase:4.3.5:oracle | info | behavior | ora.behavior.date_arithmetic | corpus/billing-demo/mapper/BillDetailMapper.xml:69 | 日期直接加减数字(天数运算):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SYSDATE - 3 验证提示 判定条件:静态命中 SYSDATE/SYSTIMESTAMP 与数字直接加减;数字单位为天,且 TIMESTAMP 与 NUMBER 运算在 Oracle 会先降为 DATE。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.instr_multiparam | corpus/billing-demo/mapper/BillDetailMapper.xml:77 | INSTR 函数(3/4 参数形态):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 INSTR(S.SERV_ATTR, '', 1, 2) 验证提示 起始位置/出现次数参数(含负起始位反向搜索)无 POSITION 等价物,需按目标端函数或表达式重写;本规则的正则不处理参数内嵌套括号,复杂表达式参数可能漏报(诚实边界) |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.substr_negative | corpus/billing-demo/mapper/BillDetailMapper.xml:85 | SUBSTR 负起始位置(从尾部计数):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SUBSTR(S.SERV_NBR, -4 验证提示 Oracle 负起始位=从尾部倒数;PG 系 substr 对负起始位是"从串前虚拟位置起算"的完全不同语义(不报错、结果错),必须改 right()/长度表达式并回归 |
|||||
| oceanbase:4.3.5:oracle | info | syntax | ora.syntax.q_quote | corpus/billing-demo/mapper/BillDetailMapper.xml:92 | q 引号字面量(q'[...]'):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 q'[集团VIP客户(免催缴)]' 验证提示 改标准两个单引号转义或 PG 的 $$ 美元引号;单遍词法通道在注释剥离前识别 q/nq 引号并跳过普通字符串与注释 |
|||||
| oceanbase:4.3.5:oracle | major | performance | ora.perf.cartesian_join | corpus/billing-demo/mapper/BillDetailMapper.xml:92 | 逗号连接疑似笛卡尔积:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 FROM BILL_DETAIL BD, CUST_INFO CI 验证提示 逗号连接需人工确认 join 条件是否完整;分布式目标上误笛卡尔积会放大网络重分布。 |
|||||
| oceanbase:4.3.5:oracle | info | function | ora.func.to_date | corpus/billing-demo/mapper/BillDetailMapper.xml:101 | TO_DATE 函数(格式模型差异):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_DATE(:p) 验证提示 判定条件:调用 TO_DATE;先查字符或 DATE/datetime 参数,再区分单参数、显式格式/NLS 与 DEFAULT ON CONVERSION ERROR,保留类型和错误边界。 |
|||||
| oceanbase:4.3.5:oracle | info | behavior | ora.behavior.nls_dependent_conversion | corpus/billing-demo/mapper/BillDetailMapper.xml:101 | 单参数 TO_DATE/TO_TIMESTAMP(依赖会话 NLS 格式):OceanBase 4.3.5 Oracle 模式 支持情况待评估(该目标库能力矩阵尚未建立此特征条目,支持情况待评估,建议以 PoC 复核;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 TO_DATE(:p) 验证提示 判定条件:调用无显式格式的 TO_DATE/TO_TIMESTAMP;先查字符或 DATE/TIMESTAMP 参数,再保留 NLS、DEFAULT ON CONVERSION ERROR 和隐式往返边界。 |
|||||
| oceanbase:4.3.5:oracle | minor | performance | ora.perf.select_star | corpus/billing-demo/mapper/BillDetailMapper.xml:155 | SELECT * 投影:源 SQL 存在静态风险(与 OceanBase 4.3.5 Oracle 模式 的语法兼容性无关;静态性能风险维度独立报告呈现,不参与兼容评分;依据公开文档评估,建议以 PoC 复核) |
|
证据片段 SELECT * FROM 验证提示 明确列清单,避免宽表网络传输、列顺序依赖和新增列导致应用解析漂移。 |
|||||
第 1 / 4 页
| 类型 | 模式 | 名称 | 行数 | 特征标签 | 解析状态 |
|---|---|---|---|---|---|
| type | - | TP_ADDRESS | 7 | object_type_usage oracle_varchar2_type | feature_only |
| trigger | - | TRG_TMP_BILL_CALC | 8 | trigger_correlation_reference | feature_only |
| trigger | - | TRG_SERV_INFO_AUDIT | 9 | seq_nextval trigger_correlation_reference | feature_only |
| package | - | PKG_BILL_COMMON | 10 | date_type_semantics deterministic nested_table oracle_number_bare_type oracle_varchar2_type package_var pipelined plsql_boolean_type varray | feature_only |
| package_body | - | PKG_BILL_COMMON | 35 | date_type_semantics deterministic exception_block last_day_call oracle_number_bare_type oracle_varchar2_type package_init_block package_var pipelined predefined_exception to_char_call trunc_call | feature_only |
| package | - | PKG_RATE_ENGINE | 11 | associative_array oracle_number_bare_type oracle_varchar2_type record_type ref_cursor result_cache | feature_only |
| package_body | - | PKG_RATE_ENGINE | 38 | dbms_call_dbms_lob dbms_call_dbms_lob.createtemporary dbms_call_dbms_lob.freetemporary dbms_call_dbms_lob.writeappend exception_block oracle_clob_type oracle_number_bare_type oracle_varchar2_type package_var predefined_exception ref_cursor result_cache to_char_call | feature_only |
| procedure | - | PRC_ARCHIVE_CDR | 39 | commit_in_proc cursor_attribute dbms_call_utl_file dbms_call_utl_file.fclose dbms_call_utl_file.file_type dbms_call_utl_file.fopen dbms_call_utl_file.put_line dynamic_sql exception_block goto oracle_number_bare_type oracle_varchar2_type to_char_call when_others | feature_only |
| procedure | - | PRC_BATCH_BILLING | 47 | associative_array bulk_collect commit_in_proc cursor cursor_for_loop exception_block forall oracle_number_bare_type savepoint seq_nextval trunc_call type_anchor when_others | feature_only |
| procedure | - | PRC_CREDIT_CHECK | 35 | associative_array commit_in_proc connect_by cursor cursor_for_loop exception_block oracle_number_bare_type predefined_exception to_char_call to_number_call when_others | feature_only |
| procedure | - | PRC_DEDUCT_BALANCE | 35 | commit_in_proc exception_block oracle_number_bare_type oracle_varchar2_type predefined_exception raise_application_error returning_into savepoint | feature_only |
| procedure | - | PRC_MONTH_REBILL | 39 | bulk_collect commit_in_proc exception_block merge_stmt nested_table oracle_number_bare_type seq_nextval when_others | feature_only |
| procedure | - | PRC_OWE_URGE | 28 | char_blank_padding commit_in_proc cursor cursor_for_loop oracle_number_bare_type seq_nextval to_char_call | feature_only |
| procedure | - | PRC_SUBMIT_JOBS | 19 | commit_in_proc dbms_call_dbms_job dbms_call_dbms_job.submit dbms_call_dbms_scheduler dbms_call_dbms_scheduler.create_job plsql_integer_types trunc_call | feature_only |
| procedure | - | PRC_SYNC_CRM_CUST | 25 | commit_in_proc cursor_attribute date_type_semantics dblink_usage merge_stmt oracle_number_bare_type ref_cursor | feature_only |
| procedure | - | PRC_WRITE_OPLOG | 14 | autonomous_transaction commit_in_proc exception_block oracle_number_bare_type oracle_varchar2_type seq_nextval when_others | feature_only |
| table | - | CUST_INFO | 26 | char_blank_padding char_length_semantics column_type_long date_type_semantics invisible_column long_type national_char_types number_precision_scale oracle_varchar2_type | feature_only |
| table | - | CUST_CONTACT | 11 | char_blank_padding column_type_udt number_precision_scale oracle_varchar2_type | parsed |
| table | - | BLACK_LIST | 9 | date_type_semantics number_precision_scale oracle_varchar2_type | parsed |
| table | - | ACCT_INFO | 15 | char_blank_padding date_type_semantics number_precision_scale oracle_varchar2_type | parsed |
| table | - | ACCT_BALANCE | 10 | date_type_semantics number_precision_scale virtual_column | parsed |
| table | - | DEPOSIT_LOG | 10 | char_blank_padding date_type_semantics number_precision_scale | parsed |
| table | - | PAY_LOG | 12 | char_blank_padding column_type_number_unbounded date_type_semantics identity_column number_precision_scale oracle_number_bare_type oracle_varchar2_type timestamp_local_tz | parsed |
| table | - | ADJUST_LOG | 12 | char_blank_padding date_type_semantics default_on_null number_precision_scale oracle_varchar2_type | feature_only |
| table | - | SERV_INFO | 16 | char_blank_padding date_type_semantics number_precision_scale oracle_varchar2_type | parsed |
| table | - | PROD_OFFER | 10 | char_blank_padding date_type_semantics number_precision_scale oracle_varchar2_type | parsed |
| table | - | SERV_PROD_REL | 9 | date_type_semantics number_precision_scale | parsed |
| table | - | PRICE_PLAN | 10 | number_precision_scale oracle_varchar2_type | parsed |
| table | - | TARIFF_ITEM | 8 | char_blank_padding iot_table number_precision_scale oracle_varchar2_type | feature_only |
| table | - | DISCOUNT_RULE | 10 | date_type_semantics number_precision_scale oracle_varchar2_type | parsed |
| table | - | BILL_CYCLE | 11 | char_blank_padding date_type_semantics number_precision_scale | parsed |
| table | - | CDR_VOICE | 17 | date_type_semantics number_precision_scale oracle_varchar2_type partitioned | feature_only |
| table | - | CDR_DATA | 13 | date_type_semantics interval_partition number_precision_scale oracle_varchar2_type partitioned | feature_only |
| table | - | EXT_CDR_FILE | 17 | external_table oracle_varchar2_type | feature_only |
| table | - | BILL_DETAIL | 16 | char_blank_padding date_type_semantics number_precision_scale partitioned | feature_only |
| table | - | ACCT_BILL | 12 | char_blank_padding date_type_semantics number_precision_scale | parsed |
| table | - | OWE_BILL | 11 | char_blank_padding date_type_semantics number_precision_scale | parsed |
| table | - | INVOICE_INFO | 12 | bfile_type column_type_bfile column_type_long_raw date_type_semantics long_type number_precision_scale oracle_clob_type oracle_varchar2_type | feature_only |
| table | - | CREDIT_CONTROL | 10 | char_blank_padding date_type_semantics interval_leading_precision interval_types number_precision_scale | feature_only |
| table | - | RATE_LOG | 11 | binary_float_double.binary_double column_type_rowid date_type_semantics number_precision_scale oracle_varchar2_type rowid_type | parsed |
| table | - | STAT_DAY_FEE | 11 | char_blank_padding date_type_semantics number_precision_scale | parsed |
| table | - | USAGE_MONTH_SUM | 8 | number_precision_scale | parsed |
| table | - | REGION_INFO | 9 | char_blank_padding number_precision_scale oracle_varchar2_type | parsed |
| table | - | CHANNEL_INFO | 8 | char_blank_padding number_precision_scale oracle_varchar2_type | parsed |
| table | - | OPERATOR_INFO | 10 | char_blank_padding number_precision_scale oracle_varchar2_type raw_type raw_uuid_candidate | parsed |
| table | - | MSG_NOTICE | 10 | char_blank_padding column_type_xmltype date_type_semantics number_precision_scale oracle_varchar2_type xmltype | parsed |
| table | - | SYS_PARAM | 7 | oracle_varchar2_type | parsed |
| table | - | OP_LOG | 8 | date_type_semantics number_precision_scale oracle_varchar2_type | parsed |
| table | - | TMP_BILL_CALC | 9 | date_type_semantics number_precision_scale temp_table | parsed |
| type | - | TP_ADDRESS | 7 | object_type_usage oracle_varchar2_type | feature_only |
| sequence | - | SEQ_PAY_LOG | 5 | sequence_order | parsed |
| sequence | - | SEQ_CUST_ID | 1 | parsed | |
| sequence | - | SEQ_MSG_ID | 1 | parsed | |
| sequence | - | SEQ_ADJUST_ID | 1 | parsed | |
| index | - | IDX_CUST_INFO_CODE | 4 | parsed | |
| index | - | IDX_SERV_INFO_ACCT | 1 | parsed | |
| index | - | UK_SERV_INFO_NBR | 1 | parsed | |
| index | - | IDX_BILL_DETAIL_ACCT | 1 | feature_only | |
| index | - | IDX_PAY_LOG_ACCT | 1 | parsed | |
| index | - | IDX_OWE_BILL_ACCT | 1 | parsed | |
| index | - | IDX_CDR_DATA_SERV | 1 | feature_only | |
| view | - | V_SERV_ACTIVE | 9 | force_view | parsed |
| view | - | V_CUST_SECURE | 6 | bequeath_clause | feature_only |
| view | - | V_OWE_LIST | 6 | view_check_option | parsed |
| view | - | V_PAY_MONTH | 5 | editionable | feature_only |
| view | - | V_BILL_OVERVIEW | 5 | parsed | |
| materialized_view | - | MV_ACCT_OWE | 8 | mview_fast_refresh mview_on_commit | feature_only |
| synonym | - | CUST_INFO | 5 | public_synonym | feature_only |
| synonym | - | V_SERV_ACTIVE | 1 | public_synonym | feature_only |
| trigger | - | TRG_TMP_BILL_CALC | 8 | trigger_correlation_reference trigger_on_global_temp_table | feature_only |
| trigger | - | TRG_SERV_INFO_AUDIT | 9 | seq_nextval trigger_correlation_reference | feature_only |
| 输入文件 | 终态 |
|---|---|
| corpus/billing-demo/ddl/schema.sql | 部分摄入(partial) |
| corpus/billing-demo/mapper/AcctBalanceMapper.xml | 部分摄入(partial) |
| corpus/billing-demo/mapper/AcctBillMapper.xml | 部分摄入(partial) |
| corpus/billing-demo/mapper/ArchiveMapper.xml | 已摄入(ok) |
| corpus/billing-demo/mapper/BillDetailMapper.xml | 部分摄入(partial) |
| corpus/billing-demo/mapper/CommonMapper.xml | 已摄入(ok) |
| corpus/billing-demo/mapper/CustInfoMapper.xml | 部分摄入(partial) |
| corpus/billing-demo/mapper/OweBillMapper.xml | 已摄入(ok) |
| corpus/billing-demo/mapper/PayLogMapper.xml | 部分摄入(partial) |
| corpus/billing-demo/mapper/ServInfoMapper.xml | 已摄入(ok) |
| corpus/billing-demo/mapper/StatReportMapper.xml | 已摄入(ok) |
| corpus/billing-demo/plsql/pkg_bill_common.sql | 已摄入(ok) |
| corpus/billing-demo/plsql/pkg_rate_engine.sql | 已摄入(ok) |
| corpus/billing-demo/plsql/prc_archive_cdr.sql | 已摄入(ok) |
| corpus/billing-demo/plsql/prc_batch_billing.sql | 已摄入(ok) |
| corpus/billing-demo/plsql/prc_credit_check.sql | 已摄入(ok) |
| corpus/billing-demo/plsql/prc_deduct_balance.sql | 已摄入(ok) |
| corpus/billing-demo/plsql/prc_month_rebill.sql | 已摄入(ok) |
| corpus/billing-demo/plsql/prc_owe_urge.sql | 部分摄入(partial) |
| corpus/billing-demo/plsql/prc_submit_jobs.sql | 已摄入(ok) |
| corpus/billing-demo/plsql/prc_sync_crm_cust.sql | 已摄入(ok) |
| corpus/billing-demo/plsql/prc_write_oplog.sql | 已摄入(ok) |
| corpus/billing-demo/sqltext/awr_top.sql | 部分摄入(partial) |
| corpus/billing-demo/sqltext/ops_scripts.sql | 部分摄入(partial) |
按出现次数降序的前 100 条语句指纹(全量去重语句 461 条)。
| 指纹 | 类型 | 出现次数 | 首现位置 | 样例(截断) |
|---|---|---|---|---|
| eb86c76c9c9a | select | 2 | corpus/billing-demo/mapper/ArchiveMapper.xml:73 | SELECT COUNT(*) FROM BILL_DETAIL WHERE BILL_MONTH = #{billMonth} |
| 6bb071df3f55 | update | 2 | corpus/billing-demo/mapper/ServInfoMapper.xml:86 | UPDATE SERV_INFO WHERE SERV_ID = #{servId} |
| 09d7e43d0190 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:9 | -- ===================================================================== -- AWR / V$SQL Top SQL 导出(模拟) -- 采集方式:按 executi… |
| f6a2b1bcf892 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:13 | -- TOP 2 | executions=52,201,384 | avg_ela_ms=0.8 | sql_id=4tg7wq2m9c1kd -- 号码查服务(呼叫前鉴权) SELECT SERV_ID, ACCT_ID, STATUS… |
| fb362f9e73f6 | update | 1 | corpus/billing-demo/sqltext/awr_top.sql:17 | -- TOP 3 | executions=36,882,047 | avg_ela_ms=1.2 | sql_id=9pl3xd5n2v8qe -- 实时扣费(计费网关) UPDATE ACCT_BALANCE SET BALANCE =… |
| b11ca54025cf | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:22 | -- TOP 4 | executions=21,004,918 | avg_ela_ms=0.3 | sql_id=2mk8rt6b4x0jf -- 缴费流水号取号(ORDER 序列,RAC 节点间排队热点) SELECT SEQ_PAY… |
| f6449284b7af | insert | 1 | corpus/billing-demo/sqltext/awr_top.sql:26 | -- TOP 5 | executions=18,377,265 | avg_ela_ms=2.1 | sql_id=6qw1zc8v5b3nh -- 话单入库(采集程序批量绑定) INSERT INTO CDR_DATA (CDR_ID,… |
| eb1fbcee19b3 | insert | 1 | corpus/billing-demo/sqltext/awr_top.sql:31 | -- TOP 6 | executions=12,940,772 | avg_ela_ms=1.9 | sql_id=1hy5um3k7t9pc -- 费用明细写入(批价程序) INSERT INTO BILL_DETAIL (FEE_ID… |
| ce88a3a08f03 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:36 | -- TOP 7 | executions=9,822,530 | avg_ela_ms=0.6 | sql_id=7vb2ns4x8d1mg -- 会话审计(登录埋点,USERENV 遗留写法) SELECT USERENV('SESSI… |
| 151daf25eae3 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:40 | -- TOP 8 | executions=8,153,904 | avg_ela_ms=3.5 | sql_id=3cz9ka1p6w4rj -- 客服账单明细页(ROWNUM 三层分页) SELECT * FROM (SELECT T.… |
| ebfb94161d8f | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:47 | -- TOP 9 | executions=7,449,681 | avg_ela_ms=1.1 | sql_id=5ne7jd0q2y6sk -- 欠费实时汇总(信控,物化视图直查) SELECT OWE_TOTAL, OWE_CNT F… |
| e47e021ef9fd | insert | 1 | corpus/billing-demo/sqltext/awr_top.sql:51 | -- TOP 10 | executions=6,207,455 | avg_ela_ms=0.9 | sql_id=0rx4gt8h3z7lb -- 缴费入账(渠道回调) INSERT INTO PAY_LOG (ACCT_ID, PAY… |
| 35a7e3a91469 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:56 | -- TOP 11 | executions=4,911,038 | avg_ela_ms=2.8 | sql_id=8dm6po2c5f1te -- 余额行锁(充值路径,WAIT 5 语法) SELECT BALANCE, VERSION… |
| 59ee1da37b7d | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:60 | -- TOP 12 | executions=4,388,207 | avg_ela_ms=0.5 | sql_id=6sl0hv9j4a2wf -- 付费模式翻译(DECODE 高频报表片段) SELECT ACCT_ID, DECODE… |
| e2ad9d011750 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:64 | -- TOP 13 | executions=3,904,552 | avg_ela_ms=1.4 | sql_id=2fu8bn5r7k3xd -- 空值兜底(NVL 高频) SELECT NVL(SUM(OWE_FEE), 0) FRO… |
| 54de48f05c3e | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:68 | -- TOP 14 | executions=3,377,910 | avg_ela_ms=2.2 | sql_id=9gc1qw7m0e5vh -- 当日缴费对账(日期截断) SELECT COUNT(*), SUM(PAY_FEE) F… |
| 2ea38775df6a | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:72 | -- TOP 15 | executions=2,850,346 | avg_ela_ms=4.0 | sql_id=4jz3xs6t9n8pa -- 明细+费目外连接((+) 旧式外连接) SELECT BD.FEE_ID, BD.FEE… |
| 01337f8ae700 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:78 | -- TOP 16 | executions=2,204,873 | avg_ela_ms=0.7 | sql_id=7wk5ce2y8u0qb -- 网厅账单月列表 SELECT BILL_MONTH, TOTAL_FEE, PAID_F… |
| 3f6000e9cbfb | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:82 | -- TOP 17 | executions=1,988,414 | avg_ela_ms=1.6 | sql_id=1tb9mf4l6i2od -- 宽限期计算(日期加数字) SELECT OWE_ID FROM OWE_BILL WHE… |
| c3adc665484b | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:86 | -- TOP 18 | executions=1,754,209 | avg_ela_ms=5.3 | sql_id=5ax7dj0g3h9ru -- 客户模糊搜索(|| 拼接通配) SELECT CUST_ID, CUST_NAME FR… |
| 77732878aa91 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:90 | -- TOP 19 | executions=1,502,861 | avg_ela_ms=0.4 | sql_id=3vp2ny8s5c7ze -- 通知取件(网关轮询) SELECT MSG_ID, ACCT_ID, MSG_TYPE … |
| 17a958995766 | insert | 1 | corpus/billing-demo/sqltext/awr_top.sql:94 | -- TOP 20 | executions=1,209,377 | avg_ela_ms=2.9 | sql_id=8qh4rk1w6m3yg -- 月账单生成(出账程序,hint 遗留) INSERT INTO ACCT_BILL (B… |
| 44e287e0dd81 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:100 | -- TOP 21 | executions=1,014,650 | avg_ela_ms=1.8 | sql_id=6em8ub3f0j5ti -- 账户名下号码拼接(LISTAGG) SELECT LISTAGG(SERV_NBR, '… |
| 783bbb228029 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:104 | -- TOP 22 | executions=884,092 | avg_ela_ms=0.6 | sql_id=0yd6io9a2p4nc -- 客户证件校验(REGEXP_LIKE) SELECT COUNT(*) FROM CUST_… |
| 48d6f71facf9 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:108 | -- TOP 23 | executions=730,518 | avg_ela_ms=3.1 | sql_id=4kt1zg7e5x8wm -- 停机候选扫描(信控日批,日期减数字) SELECT O.ACCT_ID FROM OWE_B… |
| 78df19561722 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:112 | -- TOP 24 | executions=655,481 | avg_ela_ms=2.4 | sql_id=2sn5vc0b8q1hf -- 发票流水查询(月账期) SELECT INVOICE_ID, INVOICE_NBR FRO… |
| aac02c01ba83 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:116 | -- TOP 25 | executions=529,904 | avg_ela_ms=7.2 | sql_id=7rc3lp6d9v0sj -- 集团欠费层级汇总(CONNECT BY 层级展开) SELECT SUM(O.OWE_FEE… |
| 07ec3e5437f6 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:130 | -- TOP 26 | executions=471,226 | avg_ela_ms=1.0 | sql_id=1og9fw4u7b2xk -- 出账月序列(报表口径,CONNECT BY LEVEL 行生成) SELECT TO_CHA… |
| e627f4028ed1 | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:134 | -- TOP 27 | executions=390,873 | avg_ela_ms=4.8 | sql_id=5uh2at8n1z6qd -- 渠道日结(GROUP BY + TO_CHAR) SELECT TO_CHAR(PAY_TI… |
| c6b16e0d4fff | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:141 | -- TOP 28 | executions=248,660 | avg_ela_ms=9.5 | sql_id=9ib7ms3v6c0el -- 出账对账(MINUS 集合差) SELECT ACCT_ID FROM ACCT_BILL … |
| e6422fec687d | merge | 1 | corpus/billing-demo/sqltext/awr_top.sql:147 | -- TOP 29 | executions=187,342 | avg_ela_ms=12.7 | sql_id=3pf6dk9h2j8wn -- 余额冲抵(出账后 MERGE 回写) MERGE INTO ACCT_BALANCE T … |
| f973a7bdd74a | select | 1 | corpus/billing-demo/sqltext/awr_top.sql:155 | -- TOP 30 | executions=95,207 | avg_ela_ms=45.3 | sql_id=8xe4qb7r0t5ym -- 大客户月消费导出(hint + 多表关联) SELECT /*+ INDEX(BD IDX_… |
| 6b19092915e7 | command | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:7 | -- ===================================================================== -- 计费运维脚本合集(DBA 值班手册摘录) -- 说明:SQL*Plus 环境执行;含会话… |
| f8fd0d023399 | command | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:10 | -- 出账窗口开启并行 ALTER SESSION SET WORKAREA_SIZE_POLICY = MANUAL |
| 1542f597eae5 | alias | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:13 | -- 手工补跑昨日出账作业(DBMS_JOB 老式调度) EXEC DBMS_JOB.RUN(142) |
| 47ac990e8242 | alias | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:16 | -- 注册临时补账作业(一次性) EXEC DBMS_JOB.SUBMIT(:jobno, 'PRC_BATCH_BILLING(202606);', SYSDATE, NULL) |
| 1b8a985f7a68 | select | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:19 | -- 误操作核查:闪回查询 30 分钟前的余额(误扣排查) SELECT ACCT_ID, BALANCE FROM ACCT_BALANCE AS OF TIMESTAMP (SYSTIMESTAMP - INTERVAL '30' MI… |
| 0d223ee39d44 | delete | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:24 | -- 话单重复入库修复:按 ROWID 去重保留首行 DELETE FROM BILL_DETAIL BD WHERE BD.BILL_MONTH = 202606 AND BD.ROWID NOT IN ( SELECT MIN(D.RO… |
| 525eadf3e0e9 | select | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:33 | -- 欠费口径核对:账单减缴费与欠费表比对 SELECT B.ACCT_ID, B.TOTAL_FEE - B.PAID_FEE DIFF_FEE, NVL(O.OWE_FEE, 0) OWE_FEE FROM ACCT_BILL B, O… |
| 77a983e69f79 | select | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:40 | -- 长事务排查期间锁定问题账户余额行 SELECT ACCT_ID, BALANCE FROM ACCT_BALANCE WHERE ACCT_ID = 100000123 FOR UPDATE WAIT 3 |
| be17297a8512 | select | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:43 | -- 当月分区话单量核对 SELECT COUNT(*) FROM CDR_DATA WHERE BILL_DATE >= TRUNC(SYSDATE, 'MM') |
| f88054014b19 | update | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:46 | -- 临时放开信控(重大保障期间):宽限期整体加 3 天 UPDATE CREDIT_CONTROL SET GRACE_PERIOD = NUMTODSINTERVAL(3, 'DAY') WHERE CREDIT_LEVEL = 'A' |
| ed514f2ee23d | update | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:49 | -- 补发短信通知(当天发送失败的重置为待发送) UPDATE MSG_NOTICE SET SEND_STATE = '0' WHERE SEND_STATE = '2' AND SEND_TIME >= TRUNC(SYSDATE) |
| 52f10af85016 | commit | 1 | corpus/billing-demo/sqltext/ops_scripts.sql:52 | COMMIT |
| e69db3debeee | command | 1 | corpus/billing-demo/ddl/schema.sql:13 | -- ===================================================================== -- 计费账务系统(BILLING)核心库表结构 -- 来源:生产库 DBMS_METADAT… |
| efd8980f8ed1 | create | 1 | corpus/billing-demo/ddl/schema.sql:31 | -- 客户联系人表:地址字段使用对象类型(UDT),由 TP_ADDRESS 定义 CREATE TABLE CUST_CONTACT ( CONTACT_ID NUMBER(12) NOT NULL, CUST_ID NUMBER(12)… |
| a5a352172a4c | create | 1 | corpus/billing-demo/ddl/schema.sql:43 | -- 黑名单表:欠费停机后拒绝二次入网 CREATE TABLE BLACK_LIST ( BLACK_ID NUMBER(12) NOT NULL, CERT_NBR VARCHAR2(32) NOT NULL, BLACK_REASON… |
| 6e198c9f8bb9 | create | 1 | corpus/billing-demo/ddl/schema.sql:57 | -- --------------------------------------------------------------------- -- 账户域 -- -------------------------------------… |
| 72498052c6bc | create | 1 | corpus/billing-demo/ddl/schema.sql:70 | -- 账户余额表:余额以分存储,BALANCE_YUAN 为虚拟列(报表直接取元) CREATE TABLE ACCT_BALANCE ( ACCT_ID NUMBER(12) NOT NULL, BALANCE NUMBER(14) DE… |
| 950d265edfb4 | create | 1 | corpus/billing-demo/ddl/schema.sql:81 | -- 预存款流水表 CREATE TABLE DEPOSIT_LOG ( DEPOSIT_ID NUMBER(14) NOT NULL, ACCT_ID NUMBER(12) NOT NULL, DEPOSIT_FEE NUMBER(12)… |
| 51a71263c409 | create | 1 | corpus/billing-demo/ddl/schema.sql:92 | -- 缴费流水表:12c IDENTITY 主键 + 本地时区时间戳(多时区营业厅试点遗留) CREATE TABLE PAY_LOG ( PAY_ID NUMBER GENERATED ALWAYS AS IDENTITY, ACCT_I… |
| 19895e333c77 | command | 1 | corpus/billing-demo/ddl/schema.sql:105 | -- 调账流水表:CREATE_TIME 用 12c DEFAULT ON NULL(应用传 NULL 也落 SYSDATE) CREATE TABLE ADJUST_LOG ( ADJUST_ID NUMBER(14) NOT NULL,… |
| 2bdee49924c3 | create | 1 | corpus/billing-demo/ddl/schema.sql:122 | -- --------------------------------------------------------------------- -- 产品与资费域 -- ----------------------------------… |
| 6ae4a96f215d | create | 1 | corpus/billing-demo/ddl/schema.sql:136 | -- 商品(销售品)表 CREATE TABLE PROD_OFFER ( OFFER_ID NUMBER(10) NOT NULL, OFFER_NAME VARCHAR2(128) NOT NULL, OFFER_TYPE CHAR(2… |
| 21900126342d | create | 1 | corpus/billing-demo/ddl/schema.sql:147 | -- 用户订购关系表 CREATE TABLE SERV_PROD_REL ( REL_ID NUMBER(14) NOT NULL, SERV_ID NUMBER(12) NOT NULL, OFFER_ID NUMBER(10) NOT… |
| 2c6d02d0caa3 | create | 1 | corpus/billing-demo/ddl/schema.sql:157 | -- 资费计划表 CREATE TABLE PRICE_PLAN ( PLAN_ID NUMBER(10) NOT NULL, OFFER_ID NUMBER(10), PLAN_NAME VARCHAR2(128), RATE_UNIT … |
| 3ccdb708050f | command | 1 | corpus/billing-demo/ddl/schema.sql:168 | -- 费目表:小表高频点查,建为索引组织表(IOT) CREATE TABLE TARIFF_ITEM ( ITEM_ID NUMBER(8) NOT NULL, ITEM_NAME VARCHAR2(64) NOT NULL, ITEM_… |
| 7cf6afb63cb9 | create | 1 | corpus/billing-demo/ddl/schema.sql:177 | -- 优惠规则表 CREATE TABLE DISCOUNT_RULE ( RULE_ID NUMBER(10) NOT NULL, RULE_NAME VARCHAR2(128), DISCOUNT_RATE NUMBER(5, 4), … |
| 69a916f9f56b | create | 1 | corpus/billing-demo/ddl/schema.sql:192 | -- --------------------------------------------------------------------- -- 话单与账务域 -- ----------------------------------… |
| 6edc511e9426 | command | 1 | corpus/billing-demo/ddl/schema.sql:201 | -- 语音话单表:按月 RANGE 分区(每月手工预建分区) CREATE TABLE CDR_VOICE ( CDR_ID NUMBER(16) NOT NULL, SERV_ID NUMBER(12) NOT NULL, CALLING… |
| 5e7f65574040 | command | 1 | corpus/billing-demo/ddl/schema.sql:219 | -- 流量话单表:11gR2 INTERVAL 自动扩展分区(免每月预建) CREATE TABLE CDR_DATA ( CDR_ID NUMBER(16) NOT NULL, SERV_ID NUMBER(12) NOT NULL, A… |
| 27bbb4258a74 | command | 1 | corpus/billing-demo/ddl/schema.sql:233 | -- 话单采集外部表:直接映射采集机落地的话单文件 CREATE TABLE EXT_CDR_FILE ( CALLING_NBR VARCHAR2(24), CALLED_NBR VARCHAR2(24), START_TIME VARC… |
| 4e2992acc9af | command | 1 | corpus/billing-demo/ddl/schema.sql:251 | -- 费用明细表:出账明细,按账期 RANGE 分区 CREATE TABLE BILL_DETAIL ( FEE_ID NUMBER(16) NOT NULL, ACCT_ID NUMBER(12) NOT NULL, SERV_ID N… |
| 5145e598352e | create | 1 | corpus/billing-demo/ddl/schema.sql:268 | -- 账单表:月账 CREATE TABLE ACCT_BILL ( BILL_ID NUMBER(16) NOT NULL, ACCT_ID NUMBER(12) NOT NULL, BILL_MONTH NUMBER(6) NOT NU… |
| ebd7d32e6551 | create | 1 | corpus/billing-demo/ddl/schema.sql:281 | -- 欠费表 CREATE TABLE OWE_BILL ( OWE_ID NUMBER(16) NOT NULL, ACCT_ID NUMBER(12) NOT NULL, BILL_MONTH NUMBER(6) NOT NULL, O… |
| 5d4a6423fa6d | command | 1 | corpus/billing-demo/ddl/schema.sql:293 | -- 发票信息表:票面影像为 LONG RAW(老打印系统遗留),存档扫描件为 BFILE CREATE TABLE INVOICE_INFO ( INVOICE_ID NUMBER(14) NOT NULL, ACCT_ID NUMBER… |
| 24a7fab433dd | command | 1 | corpus/billing-demo/ddl/schema.sql:306 | -- 信控表:宽限期为 INTERVAL 类型列 CREATE TABLE CREDIT_CONTROL ( CREDIT_ID NUMBER(10) NOT NULL, ACCT_ID NUMBER(12) NOT NULL, CREDI… |
| 9b893190d810 | create | 1 | corpus/billing-demo/ddl/schema.sql:317 | -- 批价日志表:记录源话单 ROWID 便于重批回溯;批价因子用二进制浮点 CREATE TABLE RATE_LOG ( RATE_ID NUMBER(14) NOT NULL, CDR_ID NUMBER(16) NOT NULL, … |
| 5be693e0e25d | create | 1 | corpus/billing-demo/ddl/schema.sql:333 | -- --------------------------------------------------------------------- -- 统计与公共域 -- ----------------------------------… |
| 123bcc41b4e7 | create | 1 | corpus/billing-demo/ddl/schema.sql:342 | -- 月使用量汇总表 CREATE TABLE USAGE_MONTH_SUM ( SERV_ID NUMBER(12) NOT NULL, BILL_MONTH NUMBER(6) NOT NULL, VOICE_SECONDS NUMB… |
| ef4666ad16ed | create | 1 | corpus/billing-demo/ddl/schema.sql:351 | -- 区域表:行政区划树 CREATE TABLE REGION_INFO ( REGION_ID NUMBER(6) NOT NULL, PARENT_ID NUMBER(6), REGION_NAME VARCHAR2(64) NOT … |
| b254a229d230 | create | 1 | corpus/billing-demo/ddl/schema.sql:361 | -- 渠道表 CREATE TABLE CHANNEL_INFO ( CHANNEL_ID NUMBER(8) NOT NULL, CHANNEL_NAME VARCHAR2(128), CHANNEL_TYPE CHAR(2), REGI… |
| cd88493655d5 | create | 1 | corpus/billing-demo/ddl/schema.sql:370 | -- 操作员表:登录令牌为 RAW 存储(MD5 摘要) CREATE TABLE OPERATOR_INFO ( OP_ID NUMBER(8) NOT NULL, OP_CODE VARCHAR2(32) NOT NULL, OP_NA… |
| 30de94b1c7d1 | create | 1 | corpus/billing-demo/ddl/schema.sql:381 | -- 短信通知表:通知报文为 XMLTYPE(网关接口报文原样落库) CREATE TABLE MSG_NOTICE ( MSG_ID VARCHAR2(32) NOT NULL, ACCT_ID NUMBER(12), MSG_TYPE … |
| 2d19530e7fe4 | create | 1 | corpus/billing-demo/ddl/schema.sql:392 | -- 系统参数表(12.2 CDB 导出遗留 SHARING 子句) CREATE TABLE SYS_PARAM ( PARAM_KEY VARCHAR2(64) NOT NULL, PARAM_VALUE VARCHAR2(512), … |
| 38419f5c11d2 | create | 1 | corpus/billing-demo/ddl/schema.sql:400 | -- 操作日志表(自治事务过程专用写入) CREATE TABLE OP_LOG ( LOG_ID NUMBER(16) NOT NULL, OP_MODULE VARCHAR2(64), OP_CONTENT VARCHAR2(1024)… |
| d49463db5b7f | create | 1 | corpus/billing-demo/ddl/schema.sql:409 | -- 出账中间计算表:会话级全局临时表(出账批处理专用) CREATE GLOBAL TEMPORARY TABLE TMP_BILL_CALC ( ACCT_ID NUMBER(12) NOT NULL, SERV_ID NUMBER(1… |
| bb80264a6180 | create | 1 | corpus/billing-demo/ddl/schema.sql:437 | -- --------------------------------------------------------------------- -- 序列 -- --------------------------------------… |
| dd260db94a0e | create | 1 | corpus/billing-demo/ddl/schema.sql:439 | CREATE SEQUENCE SEQ_CUST_ID START WITH 10000001 INCREMENT BY 1 CACHE 500 NOORDER |
| 0918ea11ff01 | create | 1 | corpus/billing-demo/ddl/schema.sql:441 | CREATE SEQUENCE SEQ_MSG_ID START WITH 1 INCREMENT BY 1 CACHE 200 |
| 215b0cd84f82 | create | 1 | corpus/billing-demo/ddl/schema.sql:443 | CREATE SEQUENCE SEQ_ADJUST_ID START WITH 1 INCREMENT BY 1 NOCACHE |
| 2a41202c259e | create | 1 | corpus/billing-demo/ddl/schema.sql:449 | -- --------------------------------------------------------------------- -- 索引 -- --------------------------------------… |
| 9c452abe96e9 | create | 1 | corpus/billing-demo/ddl/schema.sql:450 | CREATE INDEX IDX_SERV_INFO_ACCT ON SERV_INFO (ACCT_ID) |
| ea603f527ff3 | create | 1 | corpus/billing-demo/ddl/schema.sql:451 | CREATE UNIQUE INDEX UK_SERV_INFO_NBR ON SERV_INFO (SERV_NBR) |
| 4aa3da6785df | command | 1 | corpus/billing-demo/ddl/schema.sql:452 | CREATE INDEX IDX_BILL_DETAIL_ACCT ON BILL_DETAIL (ACCT_ID, BILL_MONTH) LOCAL |
| 7c451ada77cc | create | 1 | corpus/billing-demo/ddl/schema.sql:453 | CREATE INDEX IDX_PAY_LOG_ACCT ON PAY_LOG (ACCT_ID, PAY_TIME) |
| de3fe1ac9ef6 | create | 1 | corpus/billing-demo/ddl/schema.sql:454 | CREATE INDEX IDX_OWE_BILL_ACCT ON OWE_BILL (ACCT_ID, PAY_FLAG) |
| 72e58f485481 | command | 1 | corpus/billing-demo/ddl/schema.sql:455 | CREATE INDEX IDX_CDR_DATA_SERV ON CDR_DATA (SERV_ID, BILL_DATE) LOCAL |
| a1aa16e4d6a0 | create | 1 | corpus/billing-demo/ddl/schema.sql:462 | -- --------------------------------------------------------------------- -- 视图 -- --------------------------------------… |
| 02b1d84023f3 | command | 1 | corpus/billing-demo/ddl/schema.sql:469 | -- 客户脱敏视图:BEQUEATH CURRENT_USER(供 VPD 环境下按调用者权限取数) CREATE OR REPLACE VIEW V_CUST_SECURE BEQUEATH CURRENT_USER AS SELECT … |
| 4ef41dfd6bfc | create | 1 | corpus/billing-demo/ddl/schema.sql:476 | -- 欠费清单视图:带 CHECK OPTION,禁止通过视图把已缴记录改回欠费 CREATE OR REPLACE VIEW V_OWE_LIST AS SELECT OWE_ID, ACCT_ID, BILL_MONTH, OWE_FE… |
| 6015a94a744f | command | 1 | corpus/billing-demo/ddl/schema.sql:483 | -- 月缴费汇总视图(12c DBMS_METADATA 导出带 EDITIONABLE 前缀) CREATE OR REPLACE EDITIONABLE VIEW V_PAY_MONTH AS SELECT ACCT_ID, TO_CH… |
| 3984d3ab5446 | create | 1 | corpus/billing-demo/ddl/schema.sql:489 | -- 账单总览普通视图 CREATE OR REPLACE VIEW V_BILL_OVERVIEW AS SELECT B.BILL_ID, B.ACCT_ID, B.BILL_MONTH, B.TOTAL_FEE, B.PAID_FEE… |
| 8e9a3d2ec6fb | command | 1 | corpus/billing-demo/ddl/schema.sql:495 | -- 欠费实时汇总物化视图:FAST ON COMMIT(信控实时查欠费总额) CREATE MATERIALIZED VIEW MV_ACCT_OWE REFRESH FAST ON COMMIT AS SELECT ACCT_ID, S… |
| b0f47e00bd19 | command | 1 | corpus/billing-demo/ddl/schema.sql:508 | -- --------------------------------------------------------------------- -- 同义词 -- -------------------------------------… |
| edaa3375820d | command | 1 | corpus/billing-demo/ddl/schema.sql:509 | CREATE PUBLIC SYNONYM V_SERV_ACTIVE FOR BILLING.V_SERV_ACTIVE |
| a5dc3c8dabb9 | insert | 1 | corpus/billing-demo/ddl/schema.sql:527 | INSERT INTO OP_LOG (LOG_ID, OP_MODULE, OP_CONTENT, OP_TIME) VALUES (SEQ_MSG_ID.NEXTVAL, 'SERV_STATUS', '服务 ' || :OLD.SER… |
| d66dc4486e8f | comment | 1 | corpus/billing-demo/ddl/schema.sql:542 | -- --------------------------------------------------------------------- -- 注释(节选) -- ----------------------------------… |
| c60f266c847e | comment | 1 | corpus/billing-demo/ddl/schema.sql:543 | COMMENT ON COLUMN ACCT_BALANCE.BALANCE IS '账户余额,单位分' |
| 67109a676b1f | select | 1 | corpus/billing-demo/plsql/pkg_bill_common.sql:27 | SELECT CYCLE_BEGIN, CYCLE_END INTO o_begin, o_end FROM BILL_CYCLE WHERE CYCLE_ID = p_month |
以下内容未能纳入规则评估(诚实降级,红线 4):结论完整性受此约束,建议导出案例回流包补齐规则覆盖。
52
解析失败(parse_failed)
2
不支持的输入(unsupported_input)
| 类别 | 位置 | 原因 | 影响 |
|---|---|---|---|
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:9 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 9, Col: 62. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:13 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 65. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:17 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.Sub'>. Line 3, Col: 45. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:26 | Expecting ). Line 4, Col: 9. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:31 | Expecting ). Line 4, Col: 9. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:40 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 5, Col: 19. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:47 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 60. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:51 | Expecting ). Line 4, Col: 9. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:56 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 62. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:60 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 95. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:64 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 59. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:68 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 94. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:72 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 5, Col: 51. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:78 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 71. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:82 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 45. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:86 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.DPipe'>. Line 3, Col: 70. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:94 | Invalid expression / Unexpected token. Line 4, Col: 29. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:100 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 95. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:104 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 49. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:112 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 66. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:116 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 10, Col: 28. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:141 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 3, Col: 50. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/awr_top.sql:155 | Required keyword: 'expression' missing for <class 'sqlglot.expressions.core.EQ'>. Line 5, Col: 79. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/ops_scripts.sql:7 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/ops_scripts.sql:10 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/ops_scripts.sql:13 | Invalid expression / Unexpected token. Line 2, Col: 14. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/ops_scripts.sql:16 | Invalid expression / Unexpected token. Line 2, Col: 14. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/sqltext/ops_scripts.sql:19 | Invalid expression / Unexpected token. Line 3, Col: 33. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:13 | Expecting ). Line 22, Col: 36. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:105 | Required keyword: 'this' missing for <class 'sqlglot.expressions.constraints.DefaultColumnConstraint'>. Line 10, Col: 32. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:168 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:201 | Expecting ). Line 14, Col: 27. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:219 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:233 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:251 | Expecting ). Line 14, Col: 27. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:293 | Expecting ). Line 7, Col: 25. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:306 | Expecting ). Line 7, Col: 30. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:452 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:455 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:469 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:483 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:495 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:508 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/ddl/schema.sql:509 | SQLGlot 仅返回通用 Command,AST 覆盖不完整 | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/plsql/prc_owe_urge.sql:2 | Invalid expression / Unexpected token. Line 3, Col: 20. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/mapper/AcctBalanceMapper.xml:53 | Invalid expression / Unexpected token. Line 1, Col: 193. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/mapper/AcctBalanceMapper.xml:73 | Expecting ). Line 1, Col: 190. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/mapper/AcctBillMapper.xml:47 | Expecting ). Line 1, Col: 38. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/mapper/BillDetailMapper.xml:92 | Invalid expression / Unexpected token. Line 1, Col: 180. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/mapper/BillDetailMapper.xml:135 | Expecting ). Line 1, Col: 169. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/mapper/CustInfoMapper.xml:152 | Invalid expression / Unexpected token. Line 1, Col: 97. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 解析失败 | corpus/billing-demo/mapper/PayLogMapper.xml:103 | Expecting ). Line 1, Col: 202. | 该语句未纳入 AST 规则评估;仍会尝试正则/特征级规则 |
| 不支持的输入 | corpus/billing-demo/ddl/schema.sql:542 | corpus/billing-demo/ddl/schema.sql:542 DDL 通道未覆盖的语句类型(COMMENT) | 对应 DDL 语句未完整纳入对象评估 |
| 不支持的输入 | corpus/billing-demo/ddl/schema.sql:543 | corpus/billing-demo/ddl/schema.sql:543 DDL 通道未覆盖的语句类型(COMMENT) | 对应 DDL 语句未完整纳入对象评估 |