oracle、SqlServer、mysql字段类型比较

本文详细对比了Sqlserver、mysql及oracle三种数据库间的字段类型映射关系,并提供了实用的转换技巧,包括特殊向量字段的处理方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

       最近在进行数据抽取的时候,设计到多个数据库,oracle、SqlServer、mysql。这个时候字段类型映射成了一个比较头疼的问题,所以想整理一下这三个常用数据库之间的字段类型比较。

1、常见类型的映射关系:

Sqlserver
mysql
oracle
INT
INT
NUMBER
TINYINT
TINYINT
NUMBER
SMALLINT
INT
NUMBER
BIGINT
BIGINT      
NUMBER      
BIT
BIT     
NUMBER
DATETIME
DATETIME    
DATE
DATE
DATE
DATE
DATETIME
DATETIME    
DATETIME
DATETIME2(7)    
DATETIME    
DATE
TIME(7)
DATETIME    
DATE
IMAGE
MEDIUMBLOB
BLOB
TEXT
MEDIUMTEXT
CLOB
DECIMAL(5,2)
DECIMAL(5,2)
NUMBER(5,2) 
FLOAT
FLOAT       
NUMBER      
MONEY
VARCHAR(20)
VARCHAR2(40)
NCHAR(30)
NCHAR(30)
NCHAR(30)
NVARCHAR(30)
NVARCHAR(30)
NVARCHAR2(60)
VARCHAR(10 CHAR)
VARCHAR(20)
VARCHAR2(40)
VARCHAR(20)
VARCHAR(20)
VARCHAR2(40)
CHAR(10)
CHAR(10)
VARCHAR2(20)
XML
VARCHAR(4000)
VARCHAR2(4000)



2、一些小技巧:

      a.目标库的字段长度要稍微的定大一些,比如源库mysql是CHAR(10),目标库最好用varchar(20),因为之前我遇到过字符长度不够的问题。

     b、对于大多数的字段,要是一时不能确定转换什么类型的数据,可以先匹配成字符类型,因为后面转换起来,字符串的处理比较容易些。

     c、转换到SqlServer数据库时,要是字符串类型,不含中文的用varchar,有中文的用nvarchar。


3、一个特殊的字段:向量字段。

在oracle中存在一个向量字段.(要想存向量字段的数据,必须做一些配置)

向量,理解起来就是方向+大小。oracle的向量字段也可以这么理解。在转换到其他数据库时,就需要把一个字段编程两个字段。

下面是把oracle一个向量字段转换到mysql数据库中,在从mysql转换到oracle中的过程。

oracle
mysql
oracle
ST_GEOMETRY(256)
转换成blob和int
ST_GEOMETRY(256)
源适配器:sde.st_asbinary(SHAPE),sde.st_srid(SHAPE)
SHAPE为ST_GEOMETRY类型,用函数转换成blob和int类型
目标适配器:sde.st_geomfromwkb(wkb,srid)
将转换成的blob和int类型数据,再次转换成ST_GEOMETRY类型(wkb,srid为上一步装换成的blob和int类型)




评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值