Oracle由于版本的不同,在注册表中产生的注册表信息也有所不同,但主要的键值信息还是一样的,例如Oracle10g比oracle9i在注册表中表现的更为“简洁”,在未知的情况下,获取Oracle10g的相关信息,需要模糊查询一下键值

SOFTWARE\ORACLE\Key_*

Key_后面跟着是OracleHomeName的信息,默认情况如 KEY_OraDb10g_home1

而9i在注册表中的表现比较直接,可以查询这个

SOFTWARE\ORACLE\ALL_HOMES\ORACLE_COUNTER

这个值比较直观的告诉你 ,当前机器上有多少个Oracle实例,可以通过HOMEX (X为数字)找到对应的值,HOME0或HOME1或HOME2...中的ORACLE_HOME_NAME找到对应值。

如果系统里安装了多个ORACLE产品,那么在注册表里,有可能也会有多个ORACLE HOME,默认的是哪个ORACLE HOME?

其中在\SOFTWARE\ORACLE\ALL_HOMES\DEFAULT_HOME这个值就是默认的ORACLE HOME,有了DEFAULT_HOME的值,就可以获取默认的oracle实例名。

PLSQL如果在多实例的环境下 会默认连接默认实例的Oracle Home Name。

每获取到一个Oracle Home Name 都能获取到Oracle Home 的安装路径(为下面做伏笔)。

如何想要更改默认的ORACLE_HOME,可以在键值

把HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\ALL_HOMES\DEFAULT_HOME修改成HOMEX里对应的ORACLE_HOME_NAME。

注:注册表查询的起始位置是HKEY_LOCAL_MACHINE。

另:plsql在连接oracle数据库时 通常都能找到机器上所创建的数据库名,有多少就能查到多少,这是为什么呢,它都还没连接到Oracle上呢。

因为plsql也是先查询了注册表信息后(结合了上面说的查询过程),得到oracle的安装目录,然后读取 NETWORK\ADMIN 下的tnsnames.ora这个文件,来获取该实例下有多少个数据名的信息。有兴趣的可以打开这个文件看一下,然后在打开plsql,连接之前 数据库下拉框里的信息是否跟这个文件的信息一致呢!

如果你也想读取都数据库名的信息,怎么读?

直接读。。。?

不能这么强硬的,要温柔,可以利用正则表达式,较好的把数据库名的信息(而且仅读数据库名的信息)并显示出来,像plsql一样。

======================================================================

好吧,就说这些,完全有可能写的不对,我也是凭印象写,如果错误,请指正!

安装多个ORACLE导致多个Oracle HOME的情况!的更多相关文章

  1. 因xhost命令和DISPLAY环境变量操作不当导致无法启动Oracle图形化安装界面

    在redhat操作系统上安装Oracle 11.1时,遇到在执行runInstaller后无法启动安装图像化界面,甚是郁闷. 问题现象: 使用Xmanager2.0软件登陆AIX桌面,root用户可以 ...

  2. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.7.Oracle 11G R2 RAC修改public网络IP

    问题:Linuxrac2节点的public网IP被占用,导致集群节点2无法访问 1.禁止相关CRS资源的启动,停止这些资源(vip,listener,scan,scan_listener,databa ...

  3. ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档

    ORACLE LINUX 6.3 + ORACLE 11.2.0.3 RAC + VBOX安装文档 2015-10-21 12:51 525人阅读 评论(0) 收藏 举报  分类: Oracle RA ...

  4. 基于CentOS与VmwareStation10搭建Oracle11G RAC 64集群环境:4.安装Oracle RAC FAQ-4.3.Oracle 集群节点间连通失败

    1.检查节点连通性的错误 [grid@linuxrac1 grid]$ ./runcluvfy.sh stage -post hwos -n linuxrac1,linuxrac2 -verbose ...

  5. 通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库

    通过使用精简客户端,且不需要安装的客户端,配合PLSQL连接oracle数据库. 首先下载安装包在Oralce官方网站上下载Oracle Instantclient Basic package.地址如 ...

  6. linux (centOS)安装 oracle 11g 以及卸载oracle

    目录 首先.1. 一.参数以及环境配置 1.创建用户和组 2.创建数据库软件目录和数据文件存放目录 3.配置oracle用户的环境变量 4.修改linux内核,修改/etc/sysctl.conf文件 ...

  7. 错误: 未能完成程序集的安装(hr = 0x8007000b),.net程序关于使用Oracle.DataAccess.dll不同版本x86和x64问题,即oracle odp.net 32位/64位版本的问题

    如果你的机器上安装了odp.net,且确信machine.config也有类似以下结节:(64位+.net 4.0环境下,machine.config可能会有4份,分别对应于.net2.0/4.0的3 ...

  8. 安装并使用Oracle SQL Developer访问Oracle

    ---问题 如何安装并使用Oracle SQL Developer访问Oracle. ---步骤 Oracle SQL Developer是Oracle官方出品的免费图形化开发工具,相对SQL*Plu ...

  9. centos 6.5 安装 cx_Oracle 5.12 步骤 ,使用oracle instantclient12.1

    新建sh文件 内容如下: 以su用户执行这个文件 #!/bin/bash # INSTALL ORACLE INSTANT CLIENT # ############################# ...

随机推荐

  1. uni-app 的更新及碰到的问题

    uni-app 的更新 我这个是针对 app 的测试,没有考虑 小程序 及 h5,如需考虑请参考 uni-app 的条件编译 当我们将文件打包好之后,我们在手机上就可以下载 apk 文件,安装到我们的 ...

  2. Flutter移动电商实战 --(6)dio基础_Get_Post请求和动态组件协作

    上篇文章中,我们只看到了 dio 的使用方式,但并未跟应用关联起来,所以这一篇将 dio 网络请求与应用界面结合起来,当然这也是为以后的实战作基础准备,基础打牢,我们才能飞速前进. 1.案例说明 我们 ...

  3. 多线程,多进程和异步IO

    1.多线程网络IO请求: #!/usr/bin/python #coding:utf-8 from concurrent.futures import ThreadPoolExecutor impor ...

  4. NaN情况下无法比较大小

    <pre name="code" class="java">package nan; /** * NaN情况下无法比较大小 * @author ro ...

  5. SdCardUtils

    import android.os.Environment; import android.os.StatFs; public class SdCardUtils { public static bo ...

  6. oc 执行shell 脚本

    -(id) InvokingShellScriptAtPath :(NSString*) shellScriptPath { NSTask *shellTask = [[NSTask alloc]in ...

  7. vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置

    vlc 详细使用方法:libvlc_media_add_option 函数中的参数设置 [转载自]tinyle的专栏 [原文链接地址]http://blog.csdn.net/myaccella/ar ...

  8. 时间复杂度O(n)

    时间复杂度 算法分析 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率.算法分析的目的在于选择合适算法和改进算法.一个算法的评价主要从时间复杂度和空间复杂度来考虑. 一.时间复 ...

  9. 语音文件 pcm 静默(静音)判断

    转载:http://www.voidcn.com/relative/p-fwdkigvh-bro.html pcm 文件存储的是 原始的声音波型二进制流,没有文件头. (1)首先要确认 pcm文件的每 ...

  10. c++空类为什么占用1个字符

    在C++中空类会占一个字节,这是为了让对象的实例能够相互区别.具体来说,空类同样可以被实例化,并且每个实例在内存中都有独一无二的地址,因此,编译器会给空类隐含加上一个字节,这样空类实例化之后就会拥有独 ...