获取本机上配置好的Oracle服务名
点击次数:25 次 发布日期:2008-11-26 12:28:56 作者:源代码网
|
源代码网推荐 /* 源代码网推荐 获取Oracle服务名 源代码网推荐 1。查询注册表,获取oracle安装根目录 源代码网推荐 如:HKEY_LOCAL_MACHINESOFTWAREORACLEORACLE_HOME REG_SZ E:ORACLEORA92 源代码网推荐 得知oracle服务名文件所在地:根目录 etworkADMIN nsnames.ora 源代码网推荐 源代码网推荐 2。解析该文件,该文件结构如 源代码网推荐 # ------------------------------------------------ 源代码网推荐 PORTAL = 源代码网推荐 (DESCRIPTION = 源代码网推荐 (ADDRESS_LIST = 源代码网推荐 (ADDRESS = (PROTOCOL = TCP)(HOST = 134.104.52.6)(PORT = 1521)) 源代码网推荐 ) 源代码网推荐 (CONNECT_DATA = 源代码网推荐 (SERVICE_NAME = portal) 源代码网推荐 ) 源代码网推荐 ) 源代码网推荐 3。解析要点: 源代码网推荐 一行一行获取再解析 源代码网推荐 跳过以#打头的注释行 源代码网推荐 过滤掉空格后,首字符在A~z之间的行就包含了Oracle服务名 源代码网推荐 截取该行第一个“=”号左边的字符串,trim处理后就是Oracle服务名了 源代码网推荐 */ 源代码网推荐 public static string[] GetOracleTnsNames() 源代码网推荐 { 源代码网推荐 try 源代码网推荐 { 源代码网推荐 // 查询注册表,获取oracle服务文件路径 源代码网推荐 RegistryKey key = Registry.LocalMachine.OpenSubKey("SOFTWARE").OpenSubKey("ORACLE"); 源代码网推荐 string home = (string)key.GetValue("ORACLE_HOME"); 源代码网推荐 string file = home + @" etworkADMIN nsnames.ora"; 源代码网推荐 源代码网推荐 // 解析文件 源代码网推荐 string line; 源代码网推荐 ArrayList arr = new ArrayList(); 源代码网推荐 StreamReader sr = new StreamReader(file); 源代码网推荐 while ((line = sr.ReadLine()) != null) 源代码网推荐 { 源代码网推荐 line = line.Trim(); 源代码网推荐 if (line != "") 源代码网推荐 { 源代码网推荐 char c = line[0]; 源代码网推荐 if ( c>= "A" && c<="z") 源代码网推荐 arr.Add(line.Substring(0, line.IndexOf(" "))); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 sr.Close(); 源代码网推荐 源代码网推荐 // 返回字符串数组 源代码网推荐 return (string[])arr.ToArray(typeof(string)); 源代码网推荐 } 源代码网推荐 catch (Exception ex) 源代码网推荐 { 源代码网推荐 return null; 源代码网推荐 } 源代码网推荐 } 源代码网推荐 源代码网推荐 http://www.cnblogs.com/surfsky/archive/2006/08/29/489682.html 源代码网推荐 源代码网推荐 源代码网推荐 源代码网推荐 做人要厚道,请注明转自酷网动力(www.ASPCOOL.COM)。 源代码网推荐 源代码网供稿. |
