兼容性判定
公开资料依据 · 建议 PoC 复核支持度none
严重度major
置信度low
依据规则ora.func.chr_zero
怎么改
文本 NUL 改无冲突分隔符;必须保留字节时改二进制列并逐字节迁移
判定说明
迁移注意事项说明 DTS 会删除 NUL,可能造成主键冲突或数据丢失,不能保持 Oracle CHR(0) 语义;建议 PoC 复核长度、散列和全量数据对账
库侧 / 应用侧路径
库侧改造
可行:按值域选择无冲突文本分隔符或二进制列
应用侧改造
可行:协议填充与二进制拼装移到应用字节数组
推荐路线:case_by_case。验证建议:长度、HEX、哈希、排序、驱动读取和下游协议逐字节对账
规则样例
SELECT 'A'||CHR(0)||'B' FROM dual
SELECT RPAD(payload, 16, CHR(0)) FROM packets
SELECT CHR(32) FROM dual
参考来源
- https://help.aliyun.com/zh/polardb/polardb-for-oracle/important-considerations-before-oracle-migration
- https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/CHR.html
- https://help.aliyun.com/zh/polardb/polardb-for-oracle/
- https://www.alibabacloud.com/help/zh/polardb/polardb-for-oracle/difference-between-2-0-and-1-0-versions-of-polardb-for-oracle
- https://help.kingbase.com.cn/v9/development/develop-transfer/kes-vs-oracle/kes-vs-oracle-2.html
- https://www.cnblogs.com/zhenren001/p/15476677.html
- https://www.cnblogs.com/yfrs/p/18906053/oralce_kingbase
相关改造点
- ORACLE → PolarDB(Oracle 兼容)2.0 全部改造点
- PolarDB(Oracle 兼容)2.0 兼容性总览
- ORACLE 迁移国产库总览
- ORACLE CDB/多租户与排序规则 DDL 子句(SHARING / DEFAULT COLLATION / CONTAINER_MAP) 迁移 PolarDB(Oracle 兼容)2.0 怎么改
- ORACLE 字符串拼接 || 的 NULL 语义 迁移 PolarDB(Oracle 兼容)2.0 怎么改
- ORACLE LEVEL 层次伪列 迁移 PolarDB(Oracle 兼容)2.0 怎么改
- ORACLE CREATE INDEX ... NOLOGGING 迁移 PolarDB(Oracle 兼容)2.0 怎么改
- ORACLE DATE 类型含时间部分的语义 迁移 PolarDB(Oracle 兼容)2.0 怎么改
- ORACLE DROP USER ... CASCADE 级联删除 迁移 PolarDB(Oracle 兼容)2.0 怎么改