电脑上不安装Oracle,但是虚拟机装了Oracle,怎么连接到虚拟机里的Oracle数据库呢?

1、准备工作

1.1、确定数据库版本信息

注:如果知道数据库的版本信息,这个步骤可以跳过。

  • 比较简单的方法,直接看数据库的安装位置,也就是数字(但是这个方法确定就是,不好确定是多少位的数据库)
  • 另外一种是登录Oracle,查看版本信息(sqlplus 用户名/用户密码)

1.2、确定数据库的字符集信息

后面的配置需要

select userenv('language') nls_lang from dual;

查询的字符集为SIMPLIFIED CHINESE_CHINA.ZHS16GBK

1.3、准备Oracle数据库的客户端软件

注:选一个就可以,这里以PL/SQL Developer为演示
特别注意一点:客户端软件的版本一定对应OracleInstant Client的版本
比如OracleInstant Client的版本为64的,那么客户端软件的版本也应为64的

  • PL/SQL Developer
  • sqldeveloper
  • Toad for Oracle
  • Navicat Premium

1.4、准备Oracle数据库的驱动文件

oracle数据库驱动文件下载地址
Oracle Instant Client Downloads:https://www.oracle.com/cn/database/technologies/instant-client/downloads.html

  • 访问下载地址,可以看到的内容

  • 选择对应的操作平台,比如Microsoft Windows x64 平台

  • 由于虚拟机数据库版本为11.2.0(且平台为Windows 64的),这里下载Basic版本

1.5、准备连接的配置文件

  • 从虚拟机里拷出SAMPLE文件夹里的文件
  • 可以看到SAMPLE文件夹下有三个文件(LISTENER.ORA,sqlnet.ora,tnsnames.oRA)

1.6、文件准备工作就绪

  • 以下是所有的文件汇总,我这里提前把压缩包给解压出来了,方便后面操作

2、查看参数并配置连接文件

2.1、查看网络协议

本工具是Oracle安装时提供的,工具名称为Oracle Net Manager

  • IPC服务协议配置截图(SID :CLRExtProc、密钥名称 :EXTPROC1521)

  • TCP/IP服务协议配置截图(服务名、端口号 )

2.2、做连通性测试

此步骤是测试下能否访问到虚拟机地址,语法:ping 虚拟机的ip地址,看发送的数据是否都能收到

2.3、tnsnames.ora配置

2.4、新建启动脚本

移动SMPLE到Oracle Instant Client下,然后创建一个启动脚本

  • 先把修改后的SMPLE文件夹移动到Oracle Instant Client下,并创建设置启动环境.bat脚本文件

关于字符集怎么查询,请根据1.2的配置查看字符集怎么查看

  • 以下启动脚本的内容,供参考

    shell 复制代码
    @echo off
    title 不要关掉!!!
    mode con cols=38 lines=20
    color 03
    
    set file_name_str = %~sdp0
    set ORACLE_HOME = %file_name_str%
    set TNS_ADMIN = %file_name_str%\SMPLE
    set NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    rem set NLS_CHARACTERSET=AL32UTF8
    rem set NLS_LANG = AMERICAN_AMERICA.AL32UTF8
    rem set NLS_LANG = SIMPLIFIED CHINESE_CHINA.ZHS16GBK
    
    rem 在原有path后追加
    set path=%path%;%file_name_str%
    echo 设置启动环境变量,不要关闭
    
    pause
  • 接着运行这个脚本文件起来,运行后不要关掉窗口

3、配置Oracle驱动的路径

3.1、PL/SQL Developer

  • 设置Oracle目录位置

  • 重新打开PL/SQL Developer软件,尝试登录

相关推荐
kyle~21 分钟前
DTO --- 数据封装
数据库·oracle·前后端
Nebula_g1 小时前
云禾外卖补充—项目整体后端运行逻辑-对流程的更深层次理解
java·开发语言·网络·数据库·状态模式·javase
太理摆烂哥1 小时前
MySQL数据类型
数据库·mysql
程序员小孔.1 小时前
基于 SpringBoot + UniApp + Vue 的家政服务系统设计与实现
前端·数据库·spring boot·python·docker·微信小程序
草莓熊Lotso4 小时前
【C++ 基于微服务的即时通讯系统】etcd + brpc 从安装到服务注册发现全链路实战
网络·数据库·c++·redis·微服务·etcd
Lethehong10 小时前
Oracle 加个字段,目标库就报错?KFS 用“先拆后组“打通异构 DDL
数据库·oracle
Web极客码10 小时前
锁定真正的磁盘卡顿:我用 OpenCode 配合 eBPF 诊断 NVMe 队列深度延迟与 I/O 写放大
数据库·oracle
cspttty11 小时前
2027用户研究求职准备:应用统计学如何补齐研究设计与业务表达
大数据·数据库
roman_日积跬步-终至千里12 小时前
【数据Agent论文·查询与语义|05】Spider:为什么换一个数据库,模型就不会查了?
数据库·数据分析
猫咪很可爱12 小时前
Oracle RAC 启动失败排查:私网通信与内核参数优化实战
运维·数据库·oracle