MySQL与Oracle字段类型对比及迁移指南

MySQL与Oracle字段对比及迁移指南

MySQL与Oracle字段类型对比及迁移指南


1. 核心字段类型对照表

以下为MySQL与Oracle常用字段类型的对应关系及迁移设置说明,包含数值、字符串、日期、二进制等主要类别:

MySQL字段类型 Oracle对应类型 转换设置说明 注意事项
数值类型
TINYINT NUMBER(3) 有符号范围:-128~127;无符号需改为NUMBER(3) UNSIGNEDNUMBER(3) CHECK(col >=0) Oracle无UNSIGNED关键字,需手动添加约束
INT NUMBER(10) 默认映射为NUMBER(10);若需更大范围,可设为NUMBER(19)(兼容BIGINT) 迁移时需检查自增逻辑(Oracle需序列+触发器)
DECIMAL(p,s) NUMBER(p,s) 精度与标度直接对应,如DECIMAL(10,2)NUMBER(10,2) Oracle的NUMBER存储效率低于MySQL的DECIMAL
字符串类型
VARCHAR(255) VARCHAR2(255 CHAR) 若MySQL使用UTF8,需按字符计算长度(CHAR关键字);按字节计算则用VARCHAR2(765)(255*3字节) Oracle的VARCHAR2最大4000字节,超长需用CLOB
TEXT CLOB 直接映射为CLOB;若内容小于4000字节可改用VARCHAR2(4000) Oracle的CLOB字段不能作为主键
日期时间类型
DATETIME DATE 精确到秒,如2025-04-09 09:37:00DATE Oracle的DATE包含时分秒,而MySQL的DATE仅含年月日
TIMESTAMP TIMESTAMP(6) 迁移时间戳(含微秒),如TIMESTAMP(6) Oracle默认TIMESTAMP精度为6位(微秒),需与MySQL一致
二进制类型
BLOB BLOB 直接映射,Oracle支持最大4GB 迁移时需注意LOB存储参数(如ENABLE STORAGE IN ROW
VARBINARY(100) RAW(100) 定长二进制→RAW,变长→BLOB RAW类型最大2000字节,超限需用BLOB
特殊类型
ENUM('Y','N') VARCHAR2(1) + CHECK约束 创建约束:CHECK (col IN ('Y','N')) 枚举值较多时建议使用关联表
BOOLEAN NUMBER(1) TRUE→1,FALSE→0 应用层需处理逻辑转换

2. 常见函数对照表

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值