在对oracle数据库进行操作的时候我们通常会遇到一些问题 这些问题会让我们不知道所错,,
通常会出现的错误 是连接不上
原因有 ip地址的设置或者是当前oracle实例不正确
首先的首先要看看监听器的服务是不是正常的开始了
还有当前的实例是不是开启
我们可以通过找到tnsnames.ora文件查看里面的配置 是不是都是正确的
# tnsnames.ora Network Configuration File: G:\oracle\product\10.2.0\db_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
SWGL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 2012-1120-1730)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = swgl)
)
)
SWGL =
(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.43)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = swgl)
)
)
EXTPROC_CONNECTION_DATA =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1))
)
(CONNECT_DATA =
(SID = PLSExtProc)
(PRESENTATION = RO)
)
)
这是我电脑下配置tnsnames.ora
看看host通常是计算机名称 我们可以增加ip的方式进行访问
在者看看当前启动的实例是不是正确 可以到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1查看下ORACLE_SID的值是不是你要启动的实例名称
如果不是则改成你要启动的实例的名称
今天还遇到了oracle编码的问题 在重装oracle之后 出现了乱码的问题,从网上找到的解决方案
首先通过select userenv('language') from dual;可以查询到服务器所用的编码方式
我的是设置的SIMPLIFIED CHINESE_CHINA.ZHS16GBK的编码
然后在看看客户端的编码是 可以到注册表找到HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb10g_home1下NLS-LANG查看里面的值就是客户端的编码方式了。要保持两者的编码方式的相同 这样才能避免乱码的出现
更改服务器编码的命令是
connect system as sysdba ;//你自己的管理员用户
sql>shutdown immediate ;
sql>startup mount ;
sql>alter system enable restricted session ;
sql>alter system set JOB_QUEUE_PROCESSES=0;
sql>alter system set AQ_TM_PROCESSES=0;
sql>alter database open ;
sql>alter database character set internal_use ZHS16GBK ;
sql>shutdown immediate ;
sql>startup ;
然后就是客户端
可以通过
修改客户端编码:
修改
plsql下编码的设置可以通过 设置一个环境变量名称为NLS-LANG值为SIMPLIFIED CHINESE_CHINA.ZHS16GBK
然后重启plsql 注意不是快捷方式的那个 !!!而是你解压后的那一个就是 然后在重新生成快捷方式就可以了