电脑上不安装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 Downloadshttps://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服务协议配置截图(SIDCLRExtProc密钥名称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软件,尝试登录

相关推荐
星星也在雾里10 小时前
PgBouncer 解决 PostgreSQL 连接数超限 + 可视化监控
数据库·postgresql
雨辰AI12 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
长城202412 小时前
关于MySql的ONLY_FULL_GROUP_BY问题
数据库·mysql·聚合列
常常有13 小时前
MySQL 底层执行原理:输入SQL语句到两阶段提交
数据库·sql·mysql
Mr. zhihao13 小时前
深入解析redis基本数据结构
数据结构·数据库·redis
m0_7488394913 小时前
利用天正暖通CAD快速掌握风管数量统计的方法
数据库
随身数智备忘录13 小时前
什么是设备管理体系?设备管理体系包含哪些核心模块?
网络·数据库·人工智能
海市公约14 小时前
MySQL更新语句执行全流程:从Buffer Pool修改到二阶段提交
数据库·mysql·binlog·innodb·undo log·二阶段提交·update执行原理
颂love14 小时前
MySQL的执行流程
android·数据库·mysql
程序leo源15 小时前
Qt窗口详解
开发语言·数据库·c++·qt·青少年编程·c#