【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

相关推荐
偶尔。5351 小时前
什么是事务?事务有哪些特性?
数据库·oracle
安迁岚1 小时前
【SQL Server】华中农业大学空间数据库实验报告 实验六 视图
数据库·sql·mysql·oracle·实验报告
喵叔哟1 小时前
16. 【.NET 8 实战--孢子记账--从单体到微服务】--汇率获取定时器
微服务·oracle·.net
JH30732 小时前
Oracle与MySQL中CONCAT()函数的使用差异
数据库·mysql·oracle
斗-匕5 小时前
MySQL 三大日志详解
数据库·mysql·oracle
王小小鸭9 小时前
【开发小技巧11】用经典报表实现badge list效果,根据回显内容用颜色加以区分
oracle·oracle apex
大白要努力!9 小时前
android 使用SQLiteOpenHelper 如何优化数据库的性能
android·数据库·oracle
Mephisto.java12 小时前
【大数据学习 | Spark】Spark的改变分区的算子
大数据·elasticsearch·oracle·spark·kafka·memcache
远歌已逝15 小时前
维护在线重做日志(二)
数据库·oracle
LKID体1 天前
Python操作neo4j库py2neo使用(一)
python·oracle·neo4j