Mysql varchar VS Oracle varchar2
来源:互联网 发布:sim卡无法连接到网络 编辑:程序博客网 时间:2024/05/16 10:18
mysql和oracle做数据同步。其中表的一个字段在mysql中设置为varchar(6),Oracle中为varchar2(6)
但mysql中能正常存放的数据同步到oracle中却抱ORA-12899: value too large for column错误。
这是为什么呢?
mysql中varchar(6)代表可以存放6个汉字,6个字母,或6个数字。
oracle中varchar2(6)代表可以中存放6个字节。即oracle中varchar2的长度代表字节数而不是字符数。
mysql中一个汉字占三个字节,Oracle中一个汉字占两个字节。
虽然mysql varchar 和orache varchar2中字段设置相同的长度,但oracle中却存放不下。
1.1. Mysql中新建表tmysql
CREATE TABLE tmysql (
name varchar(6) DEFAULT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8
1.2.插入6个汉字
insert into t values('北京蒙迪艾尔');
1.3.可以成功插入,并查询出结果
mysql> select name ,length(name) ,char_length(name)
from tmysql;
+--------------+--------------+-------------------+
| name | length(name) | char_length(name) |
+--------------+--------------+-------------------+
| 北京蒙迪艾尔 | 18 | 6 |
+--------------+--------------+-------------------+
1 row in set
2.1. Oracle中新建表toracle
Oracle:
SQL> create table toracle
2 (
3 NAME VARCHAR2(6)
4 );
Table created
2.3 在oracle的varchar2(6)中同样插入6个汉字
SQL> insert into toracle values('北京蒙迪艾尔');
insert into toracle values('北京蒙迪艾尔')
ORA-12899: value too large for column "SCOTT"."TORACLE"."NAME" (actual: 12, maximum: 6)
-- 在oracle中varchar2(6)中插入6个汉字失败
SQL> select length('北京蒙迪艾尔') from dual;
LENGTH('北京蒙迪艾尔')
----------------------
6
SQL> insert into toracle values('蒙迪艾');
1 row inserted
SQL> select name ,length(name) from toracle;
NAME LENGTH(NAME)
------ ------------
蒙迪艾 3
SQL> insert into toracle values('蒙迪艾尔');
insert into toracle values('蒙迪艾尔')
ORA-12899: value too large for column "SCOTT"."TORACLE"."NAME" (actual: 8, maximum: 6)
如果想让mysql varchar中存放的汉字可以在orale中varchar2中存放的下。那么oracle中设置varchar2的长度应该为mysql中varchar的1.5倍。
(因为mysql中一个汉字占三个字节,oracle中一个汉字占两个字节)。
from :http://blog.csdn.net/lwei_998/article/details/7728173
- Mysql varchar VS Oracle varchar2
- Mysql varchar VS Oracle varchar2
- Mysql varchar VS Oracle varchar2
- Mysql varchar VS Oracle varchar2
- Mysql varchar VS Oracle varchar2
- Mysql 中 varchar 比较 Oracle varchar2
- oracle -varchar ,varchar2
- oracle mysql中的char,varchar,varchar2的区别
- ORACLE varchar,varchar2,nvarchar,nvarchar2
- Oracle之Char VarChar VarChar2
- oracle char varchar varchar2 使用
- oracle中的varchar和varchar2
- Oracle中varchar与varchar2
- Oracle - char, nchar,varchar,varchar2(byte), varchar2(char) 和 nvarchar2
- Oracle 中CHAR VARCHAR VARCHAR2的区别
- oracle 讨论char varchar varchar2 数据类型选用
- Oracle中的CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2
- Oracle中的CHAR,NCHAR,VARCHAR,VARCHAR2,NVARCHAR2
- CentOS 6.5配置VPN客户端
- Java NIO原理 图文分析及代码实现
- Candy Sharing Game
- 黑马 StringBuffer
- 推荐!国外程序员整理的Java资源大全
- Mysql varchar VS Oracle varchar2
- android listview 的使用
- 基本数据类型对象包装类
- C/S+P2P网络模型(一)--聊天
- MongoDB数据库设计中6条重要经验法则 Part 3
- 简单TCP服务端和客户端
- web.xml详解
- 关于<c:if>没有<c:else>解决方案
- 集合框架 共性方法和迭代器