我的数据库是这个字符集
1 NLS_CHARACTERSET AL32UTF8
2 NLS_NCHAR_CHARACTERSET AL16UTF16
数据库字符集是Unicode(AL32UTF8)时,建表
create table AA
(
A VARCHAR2(2) default '是',
B NUMBER(12) not null);
为什么会报ORA-01401:插入的值对于列过大???
为什么改成这个就可以
create table AA
(
A VARCHAR2(3) default '是',
B NUMBER(12) not null);
这样就可以,为什么?????
如果需要从1 NLS_CHARACTERSET ZHS16GBK
2 NLS_NCHAR_CHARACTERSET AL16UTF16
这种字符集导入到我的库中该怎么导入,谢谢
1 NLS_CHARACTERSET AL32UTF8
2 NLS_NCHAR_CHARACTERSET AL16UTF16
数据库字符集是Unicode(AL32UTF8)时,建表
create table AA
(
A VARCHAR2(2) default '是',
B NUMBER(12) not null);
为什么会报ORA-01401:插入的值对于列过大???
为什么改成这个就可以
create table AA
(
A VARCHAR2(3) default '是',
B NUMBER(12) not null);
这样就可以,为什么?????
如果需要从1 NLS_CHARACTERSET ZHS16GBK
2 NLS_NCHAR_CHARACTERSET AL16UTF16
这种字符集导入到我的库中该怎么导入,谢谢
解决方案 »
- sql代码转化oracle问题
- ORA-02287: sequence number not allowed here
- ◇◇◇◆◆◆求快速sqlserver导入到Oracle(数据是海量)方法?◆◆◆◇◇◇
- ORA-01861给高分,急求解决方案
- 关于oracle procedure 的return问题
- 十分着急,请各位帮帮小妹!明早看答案!写的有些长,谢帮忙,谢谢谢谢!
- oracle中用中文表名和字段名好不好
- oracle中如何实现这种功能?忽略参数
- 关于solaris下的oracle数据库连接问题
- oracle安装完后,有没有在线帮助一类的东西?????
- 怎么样把java类加载到数据库中?
- 从数据库表导入EXCEL中的问题.特别急.
所以报列过大
我觉的应该是这样子的
以确认,某些字符是否能够转,或者还是手工来转.
使用nvarchar2 定义nvarchar2(3); 存储3个字符,使用unicode,最多存储2000个字符。
作为对比
使用varchar2 定义VARCHAR2(3 Byte); 存储3个字节,使用数据库默认字符集,和VARCHAR2(3 char) 的区别在于,最多存储3字节内容而不是3字符。VARCHAR2(Byte)就是普通的varchar2()。
使用char 定义char(3); 存储3个字节,使用数据库默认字符集,和varchar2(3 Byte)的区别在于,无论存储的字符长度如何存储空间都是固定的3个字节。varchar2(byte)不考虑,因为需要大量修改倒入脚本,计算字节长度。
char也不考虑,不仅要计算字节长度,还会浪费存储空间。对于是使用varchar2(char)还是nvarchar2,就要看他们的区别了,varchar2(char)使用数据库默认字符集保存数据,对于你的例子就是使用utf8保存数据,每个字符占三个字节。
nvarchar2使用unicode保存数据,每个字符占两个字节。无论使用哪个都要修改建表的脚本。