使用 Navicate 连接 Oracle9i 数据库

Navicat Premium 是一个可多重连接的数据库管理工具,它可让你以单一程序同時连接到 MySQL、SQLite、Oracle 及 PostgreSQL 数据库,让管理不同类型的数据库更加方便。最重要的是它不用装Oracle客户端。
下边简单介绍一下 Navicat Premium 连接 Oracle 客户端的方法。
如果你的机器已经装有 Oracle 数据库的话,那很简单,Navicat Premium可以直接连接到 Oracle 。
如果没装,那 Navicat 会提示你需要安装 Oracle 客户端,如果不是必要,千万别装 Oracle 客户端,先不说它的块头很大,有四五百兆,装完后你很难卸载干净。
根据 Navicat 官方的文档,其实只需要下载 Oracle 的 Instance Client 即可。这个包只包含一些 dll 文件,无需安装解压即可。
要根据所要连接的 Oracle 版本来下载 Instance Client 的版本,对应关系如下:
Oracle 9i 或者更新的版本,需要使用 Instance Client 11 这个版本
Oracle 8 和 8i 用 Instance Client 10 版本。
另外必须注意的时候,只能下载 32 位版本,因为 Navicat 不支持 64 位的版本,另外要下载 Basic 版本 (40M),而不是 Basic Lite 版(11兆),因为 Basic Lite 版不支持中文,连接的时候会告诉你服务器端的编码不被支持。
下载完毕后解压到任意一个目录,然后打开 Navicat -> 工具 -> 选项 -> OCI ,在 OCI library 地方选择解压的目录下的oci.dll文件,确定后即可。
接下来就是新建一个 Oracle 连接,注意连接类型必须选择 Basic,否则你就又要搞很多配置文件。

Navicat for Oracle连接属性设置:

 

这里填写需要注意的是服务名或SID的填写,下面你勾选的是什么输入框里需要填写对应的值,这个值可以从Oracle的安装目录里的tnsnames.ora获取到。

如果本地安装了Oracle数据库的话,这个文件的目录F:\app\Administrator\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora

下面记录一下我碰到的问题:

当点击连接测试时,如果出现ORA-28547,如图:

解决方法:

用oracle安装文件目录F:\app\Administrator\product\11.2.0\dbhome_1\BIN
下的oci.dll替换了navicat安装文件目录D:\Navicat for Oracle\instantclient_10_2
下的oci.dll,之后就能连上了。

ORA-12737: Instant Client Light: unsupported server character set CHS16GBK 貌似也可以用同样的方法解决。

这个错误是很典型的,是由于服务器的编码不支持造成的,但是如果我改变了服务器的字符集编码,这是不现实的,所以解决的方案是要去Oracle官网下载一个最新版的OCI的文件,将原先Navicat的OCI文件覆盖即可。和上面直接在本地Oracle安装文件下找OCI文件是一样的。

ORA-12514:TNS:listener does not currently know of service requested in connect descriptor

侦听器目前并不知道连接描述符中请求的服务,出现以上问题的原因是服务名或SID这一项我写错了,如果选服务名,就必须填全局数据库名。如果选SID,就直接填写当前连接的SID名,对应服务器上数据库配置文件里的tnsnames.ora文件中的SID = ORADB。如下所示

ORADB_124.248.41.12 =
  (DESCRIPTION =
    (ADDRESS_LIST =
      (ADDRESS = (PROTOCOL = TCP)(HOST = 124.248.41.12)(PORT = 1521))
    )
    (CONNECT_DATA =
      (SID = ORADB)
      (SERVER = DEDICATED)
    )
  )

今天最后还碰到一个ORA-01017的错误,看来是有点晕,密码写错了造成的。

posted @ 2017-03-27 16:37  一线大码  Views(1144)  Comments(0Edit  收藏  举报