问题描述
一开始是设置字符集怎么设置怎么都不对,显示不出来,或者就是显示乱码.
后来,修改了本地的NLS_LANG就报下面的错误了.
ORA-12705: Cannot access NLS data files or invalid environment specified
解决方案
步骤[以SYS身份执行]:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 | shutdown immediate;//如果未开启数据库,可以略过这一句 startup mount; alter session set sql_trace=true; alter system enable restricted session; alter system set job_queue_processes=0; alter system set aq_tm_processes=0; alter database open; alter database character set internal_use utf8; alter session set sql_trace=false; shutdown immediate; startup; select userenv('language') from dual; //下面是Linux操作 //这一句很重要,可能你设置的是UTF8. //但这里显示的确不一样,[依据这个结果设置你的本地环境变量] //我这查询的结果是:AMERICAN_AMERICA.UTF8[如果设置成别的,比如UTF8,运行sqlplus的时候就会报错[ORA-12705]] //下面可以在另一个终端上进行操作!! cd ~ vi .bash_profile //去底部.增加下面的文字. export NLS_LANG=AMERICAN_AMERICA.UTF8 :wq!//保存退出 //让其配置生效 source .bash_profile source .bash_profile //输出看一下是否正确 echo $NLS_LANG //Linux操作结束 //回到sqlplus界面,重启数据库 STARTUP FORCE CONN SYS/[PASSWORD] AS SYSDBA CREATE TABLE TESTS( SNAME VARCHAR2(50) ); INSERT INTO TESTS (SNAME) VALUES ('测试'); SELECT * FROM TESTS; //如果输出中文就表示配置正确了. //另外如果使用工具连接,请在连接属性里将LANGUAGE设置为CHINA[或类似] |