Oracle数据库的连接配置和字符集配置

时间:2024-10-30 07:38:18

解决方案:

1.安装后oracle后,首先要修改字符集。

想要修改字符集,就要使用命令行行登录oracle,以及其后使用sqlplus连接oracle,此时配置oracle的配置文件是第一步,本人正确的配置如下。

参考者照着修改即可,安装路径要根据安装者实际安装位置决定。

配置文件中的意义不再阐述,不懂者请百度,这里很重要的就是Listener红线部分,这里配置错误会导致之后的sqlplus或者navicat访问失败。



2.配置确认



修改完这两个文件后就可以使用system账户登录oracle,进而修改字符集,首先配置服务器的字符集变量。



一般来讲还需要在系统变量里的path变量里添加sqlplus路径,如图




3.网上的教程一般都含有上述操作,但是下面这一步没有,这一步会导致用户修改字符集时,显示system无权限。

打开sqlnet文件,确认所标记的内容是否为一下内容。

如果这里为(NONE),则用system修改字符集时无法操作,即便是正确的密码也不行,只有sys用户并输入密码才可以(sys我没试过)。

所以这要把NONE先改为NTS,然后用system登录oracle,进而修改字符集。

注:在修改之前是可以用普通账户连接oracle并进行操作的,修改后可能会无法操作

修改oracle字符集

1.查看oracle现有字符集,select userenv('language') from dual 

2.登陆到oracle,conn /as sysdba 

3.依次执行下述命令

4.关闭数据库shutdown immediate; 

5.启动数据库startup mount 

6.限制数据库会话连接ALTER SYSTEM ENABLE RESTRICTED SESSION; 

7.改变系统设置ALTER SYSTEM SET JOB_QUEUE_PROCESSES=0; 

ALTER SYSTEM SET AQ_TM_PROCESSES=0;   

8.打开数据库ALTERdatabase open;

ALTER DATABASE CHARACTER SET ZHS16GBK; 

ALTER DATABASE character set INTERNAL_USE ZHS16GBK; 

ERROR at line 1: 

ORA-12712: new character set must be a superset of old character set 

这里会报出Error错误,意思为新字符集必须为旧字符集的超集,我们不管他,继续下面的操作。

9.查看字符集select * from v$nls_parameters; 

10.关闭数据库shutdown immediate; 

11.查看数据库startup 

12.查看字符集select * from v$nls_parameters; 


5.修改之前的sqlnet文件,将里面的NTS改回NONE并用普通用户连接oracle,连接正常