你Linux下面数据库字符集和你windows下面的数据库不一致。 建议你适当的更改一下。 查看数据库字符集: select * from sys.props$ where name='NLS_CHARACTERSET'; 修改数据库字符集:
shutdown immediate; startup mount exclusive; alter system enable restricted session ; --restricted 为约束模式 alter system set job_queue_processes = 0; alter system set aq_tm_processes =0; alter database open; 先执行:alter database national character set AL16UTF16 ; 如果报错则参照以下信息 然后执行: alter database character set zhs16GBK ; 如果报错则参照以下信息 shutdown immediate ; startup 如果错误信息,请对照一下信息 如果提示: ORA_12717 :Cannot issue ALTER DATABASE NATIONAL CHARACTER SET when NCLOB,NCHAR or NVARCHAR2 data exists 则改成以下语句: alter database national character set INTERNAL_USE AL16UTF16 ; 如果提示: ORA-12712 :new character set must be a superset of old character set ; 则更改使用以下语句: alter database CHARACTER SET INTERNAL_USE ZHS16GBK; 如果提示: ORA-12721: operation cannot execult where other sessions are active 则更改使用以下语句: shutdown immediate; startup mount exclusive ; 如果提示: ORA-01109:database not open 则使用以下语句: alter database open ; 如果提示: ORA-12719:operation requires database is in restricted mode ; 则使用以下语句 alter system enable restricted session ;
其实这个问题很简单。你在Linux下的的数据库中看下编码是多少? 语句是这样 select usernev('language') from dual 然后你在注册表中找到一个目录。HKEY_LOCAL_MACHINE、SOFTWARE、Oracle、HOME0、NLS_LANG的值 是不是和你Oracle里面的值是一样的。如果不一样要改成一样的。
建议你适当的更改一下。
查看数据库字符集: select * from sys.props$ where name='NLS_CHARACTERSET'; 修改数据库字符集:
shutdown immediate;
startup mount exclusive;
alter system enable restricted session ; --restricted 为约束模式
alter system set job_queue_processes = 0;
alter system set aq_tm_processes =0;
alter database open;
先执行:alter database national character set AL16UTF16 ;
如果报错则参照以下信息
然后执行: alter database character set zhs16GBK ;
如果报错则参照以下信息
shutdown immediate ;
startup
如果错误信息,请对照一下信息
如果提示:
ORA_12717 :Cannot issue ALTER DATABASE NATIONAL CHARACTER SET when NCLOB,NCHAR or NVARCHAR2 data exists
则改成以下语句:
alter database national character set INTERNAL_USE AL16UTF16 ;
如果提示:
ORA-12712 :new character set must be a superset of old character set ;
则更改使用以下语句:
alter database CHARACTER SET INTERNAL_USE ZHS16GBK;
如果提示:
ORA-12721: operation cannot execult where other sessions are active
则更改使用以下语句:
shutdown immediate;
startup mount exclusive ;
如果提示:
ORA-01109:database not open
则使用以下语句:
alter database open ;
如果提示:
ORA-12719:operation requires database is in restricted mode ;
则使用以下语句
alter system enable restricted session ;
语句是这样 select usernev('language') from dual
然后你在注册表中找到一个目录。HKEY_LOCAL_MACHINE、SOFTWARE、Oracle、HOME0、NLS_LANG的值 是不是和你Oracle里面的值是一样的。如果不一样要改成一样的。
不好意思这个才是对的。