由于前几天导入数据库文件的时候,一直导入不成功,因为在安装oracle的时候我的编码选择的是UTF-8,一个文字是3个字节存储的,导致了我很多的数据乱码以及字段长度越界。修改了编码为GBK以后问题解决。下面是修改编码时候的命令汇总。
首先先建议修改plsql的编码,修改环境变量,右键点击我的电脑点击属性,再进入高级系统设置
NLS_LANG
SIMPLIFIED CHINESE_CHINA.ZHS16GBK
接下来打开cmd黑窗口:依次执行即可。
C:\USERSset\MyPC> set ORACLE_SID=你想进入的数据库的那个sid,我的是orcl
C:\USERSset\MyPC> sqlplus /nolog
SQL> conn /as sysdba
Connected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup mount
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
SQL> ALTER SYSTEM ENABLE RESTRICTED SESSION;
System altered.
SQL> ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0;
System altered.
SQL> ALTER SYSTEM SET AQ_TM_PROCESSES=0;
System altered.
SQL> alter database open;
Database altered.
SQL> ALTER DATABASE CHARACTER SET ZHS16GBK;
ALTER DATABASE CHARACTER SET ZHS16GBK
*
ERROR at line 1:
ORA-12712: new character set must be a superset of old character set
提示我们的字符集:新字符集必须为旧字符集的超集,这时我们可以跳过超集的检查做更改:
SQL> ALTER DATABASE character set INTERNAL_USE ZHS16GBK;
Database altered.
SQL> select * from v$nls_parameters;
略
19 rows selected.
SQL> shutdown immediate;
Database closed.
Database dismounted.
ORACLE instance shut down.
SQL> startup
ORACLE instance started.
Total System Global Area 236000356 bytes
Fixed Size 451684 bytes
Variable Size 201326592 bytes
Database Buffers 33554432 bytes
Redo Buffers 667648 bytes
Database mounted.
Database opened.