文章目录
MySQL与Oracle字段类型对比及迁移指南
1. 核心字段类型对照表
以下为MySQL与Oracle常用字段类型的对应关系及迁移设置说明,包含数值、字符串、日期、二进制等主要类别:
| MySQL字段类型 | Oracle对应类型 | 转换设置说明 | 注意事项 | 
|---|---|---|---|
| 数值类型 | |||
| TINYINT | NUMBER(3) | 有符号范围:-128~127;无符号需改为 NUMBER(3) UNSIGNED→NUMBER(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:00→DATE | 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 | 应用层需处理逻辑转换 | 
 MySQL与Oracle字段对比及迁移指南
MySQL与Oracle字段对比及迁移指南
        
 
                   
                   
                   
                   最低0.47元/天 解锁文章
最低0.47元/天 解锁文章
                           
                       
       
           
                 
                 
                 
                 
                 
                
               
                 
                 
                 
                 
                
               
                 
                 扫一扫
扫一扫
                     
              
             
                   4571
					4571
					
 被折叠的  条评论
		 为什么被折叠?
被折叠的  条评论
		 为什么被折叠?
		 
		  到【灌水乐园】发言
到【灌水乐园】发言                                
		 
		 
    
   
    
   
             
            


 
            