//=====================================================================//
// //
// function GetOracleServerList //
// 获取机机所有ORACLE服务列表//
// purpose get the local oracle servers from the tnsnames.ora //
// from the path %oraclepath%\nerwork\admin //
// //
// argment //
// //
// return local oracle server list //
// //
// author chenhuicong 2010-12-18 //
// //
//=====================================================================//

EXPORT prototype LIST GetOracleServerList();

function LIST GetOracleServerList()
NUMBER nvHomeCount,nKeyType, nvSize,nFileHandle;
LIST listID;
STRING svOraclePath,svLine,svOraFileName,svOracleItem;
INT iVal, iLength,iItemLen;
begin
//ora filename
svOraFileName = "tnsnames.ora";
// defaut regedit root
RegDBSetDefaultRoot(HKEY_LOCAL_MACHINE);

//oralce regedit path
if(RegDBGetKeyValueEx ("SOFTWARE\\ORACLE\\ALL_HOMES\\ID0", "PATH",nKeyType, svOraclePath, nvSize) = 0) then
//oracle path
svOraclePath= svOraclePath^"network\\admin\\";
// Create a list to store lines from the file.
listID = ListCreate (STRINGLIST);
// Set the file mode to normal.
OpenFileMode (FILE_MODE_NORMAL);
// Open the file for editing.
if(OpenFile (nFileHandle, svOraclePath, svOraFileName) = 0 ) then
try
// Get lines from the file into the list.
while (GetLine (nFileHandle, svLine) = 0)
if(svLine[0] != "#" && svLine[0] != " " && svLine[0] != "(") then
iVal = 0;
iLength = StrLength (svLine);
while (iVal <= iLength)
if(svLine[iVal] = "=" || svLine[iVal] = " ") then
svLine[iVal] = NOTHING;
endif;
iVal++;
endwhile;
if(iLength > 0 ) then
ListAddString (listID, svLine, AFTER);
endif;

endif;
endwhile;
// Close the file.
CloseFile (nFileHandle);
// Remove the list from memory.
//ListDestroy (listID);
catch
CloseFile (nFileHandle);
//ListDestroy (listID);
endcatch;
endif;
endif;

return listID;
end;

转载于:https://www.cnblogs.com/chhuic/archive/2012/05/11/2495608.html

InstallShield高级应用--获取机机所有ORACLE服务列表相关推荐

  1. oracle sql获取本季度,oracle sql 获取本季度所有月份,上季度所有月份

    上季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q A FROM DUAL) CONNECT ; 本季度所有月份: ),-ROWNUM),'YYYYMM') LAST_Q FRO ...

  2. 一次性获取多个oracle序列的值,实现关联表多数据的批量insert

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 业务 要求批量导入不小于10W条数据到 user 表,但是user表在 insert  每条数据的同 ...

  3. 通过系统表获取SQL,Access,Oracle数据库的元数据信息

    元数据简介 元数据 (metadata) 最常见的定义为"有关数据的结构数据",或者再简单一点就是"关于数据的信息",日常生活中的图例.图书馆目录卡和名片等都可 ...

  4. oracle sql 获取当前时间,Oracle 在SQL语句中如何获取系统当前时间并进行操作

    ### 前言 Oracle中如何获取系统当前时间进行语句的筛选是SQL语句的常见功能 获取系统当前时间 date类型的: select sysdate from dual; char类型的: sele ...

  5. oracle中怎么获取系统时间,Oracle中如何获取系统当前时间

    Oracle中如何获取系统当前时间 select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual; ORACLE里获取一个时间的年.季.月.周.日 ...

  6. oracle中怎么获取系统时间,oracle中得到当前系统时间

    皈依舞 Oracle中如何获取系统当前时间select to_char(sysdate,'yyyy-mm-dd hh24:mi:ss') from dual;ORACLE里获取一个时间的年.季.月.周 ...

  7. oracle获取 表名,Oracle获取当前数据库的所有表名字段名和注释

    获取所有的表名和标注释 SELECT a.TABLE_NAME,b.COMMENTS FROM all_tables a left join user_tab_comments b on a.TABL ...

  8. MySQL 高级 循环获取游标

    通过循环结构 , 获取游标中的数据 : DELIMITER $create procedure pro_test12() beginDECLARE id int(11);DECLARE name va ...

  9. oracle怎么获取行,在oracle中如何实现SELECT TOP N取得前几行记录

    在sql server中可以通过SELECT TOP N来取得想要结果的前几行的信息. 但是在oracle中必须借助伪列rownum来完成 一个查询语句在取得结果集后,伪列rownum就会从1开始,从 ...

最新文章

  1. 把LabelImg标注的YOLO格式标签转化为VOC格式标签 和 把VOC格式标签转化为YOLO格式标签
  2. 基于jsp的教师科研工作量_基于jsp+mysql的JSP教师科研信息管理系统
  3. 创业者说:我从创业者大会看到了什么
  4. 音视频技术开发周刊 | 215
  5. CentOS 下安装xdebug
  6. LeetCode 851. 喧闹和富有(拓扑排序)
  7. 更换计算机桌面背景的教案,桂科版三年级下册任务一 美化桌面背景免费教学设计...
  8. redis 获取所有的key_在微博微信场景下学习Redis数据结构
  9. 用标准C语言初始化线性表,跪求:线性表初始化函数的详细解释(c语言)
  10. jQuery AJAX实现调用页面后台方法
  11. vue在开发环境中配置本地hosts修改域名
  12. 教你如何用两个栈实现一个队列
  13. SG90系列 MG系列马达
  14. ps2020 快捷键命令简介
  15. 隐马尔可夫模型拼音汉字输入法
  16. Icarus Verilog
  17. 猿如意开发工具|python3.7
  18. 获取农历节日的公共方法
  19. 音乐 美术 劳技 计算机教研组工作总结,劳技教研组工作总结
  20. 将实时三维计算机技术,基于结构光实时三维重建计算机应用技术专业论文.docx...

热门文章

  1. Type EnumTypeInfo<xxxxx> cannot be used as key. Contained UNSUPPORTED key types: EnumTypeInfo<xxxxx>
  2. Dockerfile和Dockerfile-dev
  3. ./configure: error: the HTTP gzip module requires the zlib library.
  4. ubuntu右键打开终端(Open Terminal Here)失效
  5. 数据库中char与varchar类型的区别 1
  6. 阿里云ECS在CentOS 6.9中使用Nginx提示:nginx: [emerg] socket() [::]:80 failed (97: Address family not supported
  7. virtualenv在windows10下面使用的注意事项
  8. leetcode刷题集:栈与队列
  9. NOIP2016 D2T3 愤怒的小鸟
  10. 转:java中static、final、static final的区别