1.先说一个知识盲点,之前一直没有搞清楚字节和字符的具体含义。
字节:是一种计量单位,表示数据量多少。
字符:计算机中使用的文字或者符号。中文、英文、标点、各种符号都是字符。
根据编码格式不同,一个字符占用的字节也不同:
ASCII:一个英文字符占用1个字节,一个中文字符占用2个字节。
UTF-8:一个英文字符占用1个字节,一个中文字符占用3个字节。
Unicode:一个中文或者英文都占用两个字节。
2.oralce中的CLOB字段转化成mysql的LongTEXT。开始的时候使用text,结果存储的时候报了字段太小不能存储的错误。
TINYTEXT | 256 bytes | |
TEXT | 65,535 bytes | ~64kb |
MEDIUMTEXT | 16,777,215 bytes | ~16MB |
LONGTEXT | 4,294,967,295 bytes | ~4GB |
oracle中CLOB和BLOB都是4G,而LONG ,LONG raw是旧时代的oracle二进制和长文本表示,将来会被废弃。最长长度是2G.
单位是Byte。
表中单个 LOB 字段 在 9i 版本中可保存 4GB 数据, 在 10g 版本中可保存多达 128TB 的数据。所以理论上是没限制的。
3.程序中使用的函数都是oracle的,要转化成mysql的。
如oralce中的to_number、nvl、regexp_like,转换成mysql语法,CAST、IFNULL、REGEXP。