【Oracle】Navicat Premium 连接 Oracle的两种方式

使用版本说明

Navicat® Premium 版本 11.2.16 (64-bit)

一、配置OCI

1.1 配置OCI环境变量

1.1.2 设置\高级系统设置

1.1.2 系统属性\高级\环境变量(++N++)

1.1.3 修改/添加系统变量 ORACLE_HOME

DOS 复制代码
ORACLE_HOME
D:\app\root\product\12.1.0\dbhome_1

1.1.4 添加系统变量 TNS_ADMIN

DOS 复制代码
TNS_ADMIN
%ORACLE_HOME%\NETWORK\ADMIN\

1.1.5 未配置OCI环境变量会出现哪些情况?

Cannot create oci environment

Access violation at address 00007FF90188A6EF in module 'OraClient12.Dll'. Read of address 00000000000000D8

1.2 、配置OCI.dll

1.2.1 正确配置

配置路径 工具\选项\其他\OCI -- 常规\OCI library (oci.dll) *
OCI 的版本需要与Oracle数据库服务相匹配,否则会出现各种各样的问题。

正确配置如下

  • Oracle 服务器版本Oracle Database 12c 发行版
  • Navicat PremiumNavicat® Premium 版本 11.2.16 (64-bit)
  • oci.dll12.1.0.0

oci.dll 详情

  • 文件位置:D:\app\root\product\12.1.0\dbhome_1\bin\oci.dll
  • 文件说明:Oracle Call Interface
  • 文件版本:12.1.0.0
  • 修改日期:‎2014‎年‎9‎月‎11‎日,‏‎2:49:48
  • 大小: 641,536 字节

修改完记得重启Navicat

1.2.2 OCI 的错误配置

1.2.2.1 Cannot create oci environment
  • Oracle 服务器版本Oracle Database 12c 发行版
  • Navicat PremiumNavicat® Premium 版本 11.2.16 (64-bit)
  • oci.dll10.2.0.1

oci.dll 详情

  • 文件位置:C:\Program Files\PremiumSoft\Navicat Premium\instantclient_10_2\oci.dll
  • 文件说明:Oracle Call Interface
  • 文件版本:10.2.0.1
  • 修改日期:2014-11-11 14:42
  • 大小: 516,096 字节

oci.dll 10.2.0.1 报错详情

Cannot create oci environment

Access violation at address 00000000169ECFD1 in module 'Ora0CICUS10.dll'. Read of address 00000000000000D8

1.2.2.2 Cannot load OCI DLL
  • Oracle 服务器版本Oracle Database 12c 发行版
  • Navicat PremiumNavicat® Premium 版本 11.2.16 (64-bit)
  • oci.dll11.2.0.1

oci.dll 详情

  • 文件位置:D:\app\admin\product\11.2.0\client_1\oci.dll
  • 文件说明:Oracle Call Interface
  • 文件版本:11.2.0.1
  • 修改日期:‎2010‎年‎4‎月‎2‎日,‏‎7:42:34
  • 大小: 987,136 字节

oci.dll 11.2.0.1 报错详情

Cannot load OCI DLL, 193: D:\app\admin\product\11.2.0\client_1\oci.dll

Instant Client package is required for Basic and TNS connection.

For more information: ++http://wiki.navicat.com/wiki/index.php/lnstant_client_required++

Cannot load OCI DLL 87:

Instant Client package is required for Basic and TNS connection.

For more information: ++http://wiki.navicat.com/wiki/index.php/lnstant_client_required++

二、连接

2.1 连接类型 - Basic

  • 连接名:<自定义>
  • 连接类型:Basic
  • 主机名或IP地址:<Oracle数据库服务端安装地址>
  • 端口:1521(默认)
  • 服务名或 SID:
  • 服务名:orcl(默认) ------ 全局数据库名(服务名)
  • SID:orcl(默认) ------ 系统标识符(SID)
  • 用户名:SYS、SYSTEM(默认)
  • 密码:<自定义>

2.2 连接类型 - TNS

  • 连接名:<自定义>
  • 连接类型:TNS
  • 网络服务名: ORCL(默认) ------ tnsnames.ora网络配置文件中的服务名
  • 用户名:SYS、SYSTEM(默认)
  • 密码:<自定义>

**tnsnames.ora**

ora 复制代码
# tnsnames.ora Network Configuration File: D:\app\root\product\12.1.0\dbhome_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.

PORTAL56_HIS =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-12Q8LR0)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = portal56_his)
    )
  )

TEST001 =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = 172.16.75.158)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

ORCL =
  (DESCRIPTION =
    (ADDRESS = (PROTOCOL = TCP)(HOST = DESKTOP-12Q8LR0)(PORT = 1521))
    (CONNECT_DATA =
      (SERVER = DEDICATED)
      (SERVICE_NAME = orcl)
    )
  )

三、其他报错

ORA-01005

ORA-01005:给出空口令;登录被拒绝


密码不能填空

ORA-01017

ORA-01017: invalid username/password; logon denied


输入的账号或密码不正确

ORA-12154

ORA-12154: TNS: 无法解析指定的连接标识符

ORA-12154: TNS:could not resolve the connect identifier specified

  1. 检查系统变量 ORACLE_HOMETNS_ADMIN 是否配置或配置是否正确
  2. 填写网络服务名称 %ORACLE_HOME%\NETWORK\ADMIN\tnsnames.ora 存不存在其中%ORACLE_HOME% 是安装目录,安装时指定,如:D:\app\root\product\12.1.0\dbhome_1`

ORA-28009

ORA-28009: connection as SYS should be as SYSDBA or SYSOPER

  • sys用户是超级用户,具有最高权限,具有sysdba角色,有create database的权限。
  • system用户是管理操作员,权限也很大,具有susoper角色,没有create database的权限。

所以在使用sys连接Oracle数据库时,需要选择sysdba角色,或者使用sys as sysdba作为用户进行登录

在Navicat tab页"高级"中的角色选择SYSDBA

相关推荐
jnrjian4 天前
ORA-01017 查找机器名 用户名 以及library cache lock 参数含义
数据库·oracle
TTc_4 天前
oracle中的union和union all有什么区别?
数据库·oracle
山峰哥4 天前
吃透 SQL 优化:告别慢查询,解锁数据库高性能
服务器·数据库·sql·oracle·性能优化·编辑器
南 阳4 天前
Python从入门到精通day37
数据库·python·oracle
轩情吖4 天前
MySQL库的操作
android·数据库·mysql·oracle·字符集·数据库操作·编码集
脱发的老袁4 天前
【数据库】Oracle手动清理归档日志
数据库·oracle
jnrjian4 天前
Oracle 共享池 库缓存下的 Library Cache Lock
数据库·缓存·oracle
新缸中之脑5 天前
在Reddit上探索未满足的需求
数据库·oracle
light blue bird5 天前
产线多并发客户端指令操作场景组件
jvm·oracle·.net·winform
坐吃山猪5 天前
Neo4j04_数据库事务
数据库·oracle·neo4j