这里写自定义目录标题
- 前言
- [Oracle 客户端安装](#Oracle 客户端安装)
-
- 先决条件
- [下载 Oracle 客户端](#下载 Oracle 客户端)
- [Oracle 客户端环境变量配置](#Oracle 客户端环境变量配置)
- PL/SQL
-
- [PL/SQL 下载](#PL/SQL 下载)
- [PL/SQL 配置](#PL/SQL 配置)
- 配置远程连接
-
- [tnsnames.ora 文件配置](#tnsnames.ora 文件配置)
- [使用 PL/SQL 连接远程数据库](#使用 PL/SQL 连接远程数据库)
- [使用 C# 远程访问 Oracle 数据库](# 远程访问 Oracle 数据库)
- 结语
前言
最近有一个需要使用本地的 Oracle 客户端连接远程 Oracle 服务端并且需要用 c# 跑通。我在网上查询了一些资料最终实现了这个需求,但是发现这些资料缺胳膊少腿的,要不就是表述不清,我现在尝试将这些资料整合写一个表述明确的文档。
Oracle 客户端安装
先决条件
需要明确的是如果你的 Oracle 服务端是 64 位则客户端也需要下载 64 位的,PL/SQL 也需要下载 64 位的。我下载的是 32 位的 Oracle 服务端因此文档中都以 32 位为主
下载 Oracle 客户端
下载地址:Oracle 客户端下载地址
下载完成后进入文件夹点击 setup.exe
进行安装,会弹出 cmd 窗口稍等几秒钟。
进入安装
-
第一步
-
第二步
-
第三步:安装位置放在自己专门安装软件的文件夹中即可,按个人喜好来
-
第四步:先决环境检查,稍等几秒
-
第五步:安装
Oracle 客户端环境变量配置
- 第一步:打开环境变量
- 第二步
- 第三步:设置环境变量
要设置两个环境变量
PL/SQL
PL/SQL 下载
PL/SQL 下载地址:PL/SQL 管网下载地址
注意,我下载的是 32 位的 PL/SQL, 各位请按需下载
PL/SQL 配置
- 第一步
- 第二步
这里是自动检测的,在这里点击确定然后退出 PL/SQL 。
配置远程连接
tnsnames.ora 文件配置
- 第一步:进入你安装的 Oracle 客户端的文件夹中
- 第二步:进入 network 文件夹中的 admin 文件夹
- 第三步:新建一个
tnsnames.ora
文本文件
- 第四步:配置
tnsnames.ora
xml
# tnsnames.ora Network Configuration File: E:\02_Sofrware\01_Apps\Oracle_Client_32_19c\product\19.0.0\client_1\network\admin\tnsnames.ora
# Generated by Oracle configuration tools.
192.168.1.234 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.234)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = orcl)
)
)
以上是我自己配置,下面我来解释一些参数
xml
自定义参数1 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 自定义参数2)(PORT = 自定义参数3))
)
(CONNECT_DATA =
(SERVICE_NAME = 自定义参数4)
)
)
自定义参数:是可以自己定义的
自定义参数1:要连接的服务名
自定义参数2:服务器 IP 地址
自定义参数3:服务器上 Oracle 数据库的端口号
自定义参数4:服务器上 Oracle 数据库的实例名一般都是 orcl
使用 PL/SQL 连接远程数据库
用户名那一栏中填写的是服务器中 Oracle 数据库的用户名和密码,system
是用户名,ORACLEDATABASE
是密码。
数据库那一栏中填写的就是在 tnsnames.ora
文件中配置的 自定义参数1
即 要连接的服务名
使用 C# 远程访问 Oracle 数据库
- 第一步:使用 Nuget 包管理器安装 Oracle 驱动包
- 第二步:编写代码实现
C#
public static void Main(string[] args) {
Console.WriteLine("启动");
//数据库连接字串
string conString = "User Id=system;Password=ORACLEDATABASE;Data Source=192.168.1.234;";
using (OracleConnection con = new OracleConnection(conString))
{
using (OracleCommand cmd = con.CreateCommand())
{
try
{
con.Open();
cmd.BindByName = true;
cmd.CommandText = "SELECT * FROM Persons";
OracleDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Console.WriteLine($"ID:{reader.GetString(0)}");
Console.WriteLine($"NAME:{reader.GetString(1)}");
Console.WriteLine($"ADDRESS:{reader.GetString(2)}");
Console.WriteLine($"AGE:{reader.GetString(3)}");
}
Console.WriteLine();
Console.WriteLine("Press 'Enter' to continue");
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
Console.ReadLine();
}
}
}
运行结果:
结语
至此本文档结束,如果感觉还有什么不明确的可以留言。
-
如何查询 Oracle 数据库实例
查询 Oracle 数据库实例