Oracle 本地客户端连接远程 Oracle 服务端并使用 c# 连接测试

这里写自定义目录标题

  • 前言
  • [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();
        }
    }
}

运行结果:

结语

至此本文档结束,如果感觉还有什么不明确的可以留言。

相关推荐
问道飞鱼1 分钟前
【数据库知识】MySQL 多表关联高效实现指南:场景化方案与底层原理
数据库·mysql·多表关联
马克学长2 分钟前
SSM校园二手交易平台7fut7(程序+源码+数据库+调试部署+开发环境)带论文文档1万字以上,文末可获取,系统界面在最后面
数据库·ssm 框架·校园闲置资源交易
dblens 数据库管理和开发工具9 分钟前
MySQL :5.7与8.0版创建用户与授权、密码认证插件、角色、密码过期策略
数据库·mysql·dblens·mysql创建用户·mysql设置密码·mysql用户授权
曹牧20 分钟前
Oracle:字段为值列表
数据库·oracle
亮子AI28 分钟前
【Prisma】如何修复(重建)已经损坏的迁移历史?
数据库·prisma
+VX:Fegn089538 分钟前
计算机毕业设计|基于springboot + vue职位管理推荐系统(源码+数据库+文档)
数据库·vue.js·spring boot·后端·课程设计
热爱专研AI的学妹1 小时前
【搭建工作流教程】使用数眼智能 API 搭建 AI 智能体工作流教程(含可视化流程图)
大数据·数据库·人工智能·python·ai·语言模型·流程图
DBA小马哥1 小时前
国产数据库加速替代Oracle:聚焦信创背景下的平滑迁移与性能突破
数据库·oracle
漂亮的小碎步丶1 小时前
【7】SQL性能优化实践:EXPLAIN解读+慢查询分析+移动代理商结算案例
数据库·sql性能优化
小股虫2 小时前
从Tair虚拟桶到数据库分库分表:解耦逻辑与物理的架构艺术
数据库·架构·解耦