码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Oracle 本地客户端连接远程 Oracle 服务端并使用 c# 连接测试


    这里写自定义目录标题

    • 前言
    • Oracle 客户端安装
      • 先决条件
      • 下载 Oracle 客户端
      • Oracle 客户端环境变量配置
    • PL/SQL
      • PL/SQL 下载
      • PL/SQL 配置
    • 配置远程连接
      • tnsnames.ora 文件配置
    • 使用 PL/SQL 连接远程数据库
    • 使用 C# 远程访问 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
    # 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)
        )
      )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12

    以上是我自己配置,下面我来解释一些参数

    
    自定义参数1 =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS = (PROTOCOL = TCP)(HOST = 自定义参数2)(PORT = 自定义参数3))
        )
        (CONNECT_DATA =
          (SERVICE_NAME = 自定义参数4)
        )
      )
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    自定义参数:是可以自己定义的
    自定义参数1:要连接的服务名
    自定义参数2:服务器 IP 地址
    自定义参数3:服务器上 Oracle 数据库的端口号
    自定义参数4:服务器上 Oracle 数据库的实例名一般都是 orcl

    使用 PL/SQL 连接远程数据库

    在这里插入图片描述
    用户名那一栏中填写的是服务器中 Oracle 数据库的用户名和密码,system 是用户名,ORACLEDATABASE 是密码。
    数据库那一栏中填写的就是在 tnsnames.ora 文件中配置的 自定义参数1 即 要连接的服务名

    使用 C# 远程访问 Oracle 数据库

    • 第一步:使用 Nuget 包管理器安装 Oracle 驱动包
      在这里插入图片描述
      在这里插入图片描述
    • 第二步:编写代码实现
    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
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    运行结果:
    在这里插入图片描述

    结语

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

    • 如何查询 Oracle 数据库实例
      查询 Oracle 数据库实例

    • 相关教程
      PL/SQL 安装下载使用
      Oracle 客户端下载教程
      Oracle 客户端连接远程 Oracle 数据库

  • 相关阅读:
    踩坑:Invalid character found in method name. HTTP method names must be tokens
    Plink常见命令 --bfile --freq--recode --make-bed
    【pc与移动端适配小tip】使用scss做vh,vw单位适配,scss的mixin与function方法
    SpringBoot-数据库操作
    【生日快乐】Node.js 实战 第1章 欢迎进入Node.js 的世界 1.2 ES2015、Node 和 V8
    高质量的写作论文竞赛介绍
    m基于GA遗传优化的生产工艺设备布置优化matlab仿真
    基于Xlinx的时序分析与约束(2)----基础概念(上)
    springboot+nodejs+vue高校实验室设备管理系统
    echarts3 map
  • 原文地址:https://blog.csdn.net/Adeluoo/article/details/132558467
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号