ORA-12952: 请求超出了容许的最大数据库大小 4 GB

ORA-12952: 请求超出了允许的最大数据库大小 4 GB

今天导入新项目,遇到两个BUG,分享一下。

   BUGORA-12952: 请求超出了允许的最大数据库大小 4 GB

解决方法:因为ORACLE 10g Express是简化版,它具有一定的局限性,它的所有数据文件大小不能超过4G,内存使用不能超过1G,CPU只能使用1个。所以应该把它卸了,重新安装完整版的oracle软件。

BUG:在oracle数据库中导入dmp数据库文件时,发现两个数据库的字符编码不一致,数据库的编码是AL32UTF8,而dmp数据库文件的的编码是ZHS16GBK导致报出警告。

解决方法:这些警告没大碍,能正常向数据库中导入数据。但倒是了解了一下oracle的字符编码,个人总结如下:

Orcal中的字符编码规则:<Language><bit size><encoding>即:<语言><比特位数><编码>

比如:ZHS16GBK:简体中文、16位、GBK编码格式

US7ASCII:美国、7位、ASCII编码格式

WE8ISO8859P1:西欧、8位、ISO标准8859P1编码

AL32UTF8AL代表ALL,指的是所有语言、32位、UTF-8编码格式

位数低的是位数高的子集,当超集向子集转换时,可以直接转换,当子集向超集转换时,不能直接转换,会报错,这就需要修改数据库的编码,ALTER DATABASE CHARACTER SET 字符编码格式(上面列举出来的,如:AL32UTF8)。

那怎样知道自己的数据库编码是什么呢?通过select userenv('language') from dual;查询。