使用 OCI 连接到 Oracle
PhpStorm 使用 JDBC 驱动程序通过 TNS 协议连接到 Oracle 服务器。
在精简模式下,JDBC 驱动程序始终连接到 TNS 侦听器。在这种模式下,可以使用各种版本的 JDBC 驱动程序。
在 OCI 模式下,JDBC 驱动程序使用本机库。在这种情况下,JDBC 驱动的版本必须与这些原生库的版本相同。
OCI模式下版本的兼容性
在单独的机器上安装
当 Oracle Instant Client 安装在单独的计算机上时,Oracle Instant Client 和 Oracle Server 的版本可能不同。例如,Oracle Client 19.x 可以成功连接到 Oracle server 11.2。但 JDBC 驱动程序必须与 Oracle Instant Client 具有相同的版本。否则,您将看到类似Native library cannot be loaded
or的错误Incompatible version of libocijdbc
。
例如,考虑以下 Oracle 设置:
Oracle Database 12c 企业版 12.2.0.1.0 - 64 位生产
Oracle 即时客户端 19.8.0.0
如果我们使用 Oracle 驱动程序 19.3.0.0,我们将获得Incompatible version of libocijdbc
. 但是如果我们切换到Oracle驱动19.8.0.0,连接就会成功。考虑以下动画。
在同一台机器上安装
在装有 Oracle 服务器的机器上安装 Oracle Instant Client 时,JDBC 驱动程序使用本机库连接到 Oracle 服务器。而这个本机库是 Oracle 服务器软件的一部分。因此,JDBC 驱动程序必须与 Oracle 服务器具有相同的版本。
汇总表
单独的机器 | 同一台机器 | |
---|---|---|
Oracle Instant 客户端和服务器的版本 | 可能不同 | 将相同(因为 Oracle Instant Client 是 Oracle 服务器软件的一部分) |
JDBC 驱动程序的版本 | 与 Oracle Instant 客户端相同 | 与 Oracle 服务器版本相同 |
准备 OCI 文件和环境
从oracle.com 上的 Oracle Instant Client 下载页面,为您的操作系统下载以下软件包:
基本套餐
SQL*Plus 包
JDBC 补充包
Step 1. 解压下载的包
创建一个目录(例如~/Oracle/instantclient_19_8/)。
将所有包解压到创建的目录。
第 2 步(可选)添加环境变量
此步骤是可选的。设置环境变量后,您可以使用 sqlplus 工具连接到您的 Oracle 实例。请注意,这些设置仅适用于命令提示符的当前会话。
添加以下环境变量:
导出 ORACLE_HOME=~/Oracle/instantclient_19_8导出 TNS_ADMIN=$ORACLE_HOME/network/admin导出 NLS_LANG=English_America.UTF8导出 PATH=$PATH:$ORACLE_HOME设置 ORACLE_HOME=C:\Oracle\instantclient_19_8设置 TNS_ADMIN=%ORACLE_HOME%\network\admin设置 NLS_LANG=English_America.UTF8设置 PATH=%PATH%:%ORACLE_HOME%
步骤 3. 配置 ORA 文件
您可以向 Oracle 服务器管理员请求tnsnames.ora文件,或使用以下方法编写文件:
在您在步骤 1中创建的目录中,创建网络目录。在网络目录中,创建管理目录。整体路径应如下所示:~/Oracle/instantclient_19_8/network/admin。
在admin目录中,创建具有以下结构的tnsnames.ora文件:
MyTNSAlias = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = db.my.domain.com)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = my_service.my.domain.com)) )您的tnsnames.ora文件可能具有以下外观:
配置好tnsnames.ora文件和环境变量后,您可以尝试通过运行以下命令连接到实例:
cd ~/Oracle/instantclient_19_8导出 TNS_ADMIN=~/Oracle/instantclient_19_8/network/adminsqlplus 登录@MyTNSAlias
创建 Oracle OCI 连接
步骤 1. 为 OCI 连接准备驱动程序
在数据库工具窗口( )中,单击数据源属性图标。
在“数据源和驱动程序”对话框中,单击“驱动程序”选项卡。
在驱动程序列表中,右键单击Oracle驱动程序并选择复制。
更改复制的 Oracle 驱动程序的名称(例如
Oracle [OCI]
)。在Driver Files窗格中,单击Add图标 ( ) 并选择Native Library Path。
在文件浏览器中,导航到之前创建的 Instant Client 的目录(例如~/Oracle/instantclient_19_8),然后单击Open。
步骤 2. 创建 OCI 连接
在数据库工具窗口( )中,单击数据源属性图标。
在Data Sources and Drivers对话框中,单击Add图标 ( ) 并选择Oracle。
从连接类型列表中,选择TNS。
从驱动程序列表中,选择OCI。
单击驱动程序链接并选择您在步骤 1中创建的驱动程序条目。
在TNSADMIN字段中,单击浏览按钮并导航到包含 Instant Client 的目录(在我们的示例中为~/Oracle/instantclient_19_8/)。
在TNS 名称字段中,指定要使用的服务名称(请参阅tnsnames.ora中的别名值)。
指定 Oracle 用户的凭据。
要确保与数据源的连接成功,请单击测试连接链接。