广

ASP编程

  • IOS开发
  • android开发
  • PHP编程
  • JavaScript
  • ASP.NET
  • ASP编程
  • JSP编程
  • Java编程
  • 易语言
  • Ruby编程
  • Perl编程
  • AJAX
  • 正则表达式
  • C语言
  • 编程开发

    获取本机上配置好的Oracle服务名

    2018-05-03 14:16:58 次阅读 稿源:互联网
    零七广告

              /*
              获取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

    零七网部分新闻及文章转载自互联网,供读者交流和学习,若有涉及作者版权等问题请及时与我们联系,以便更正、删除或按规定办理。感谢所有提供资讯的网站,欢迎各类媒体与零七网进行文章共享合作。

    零七广告
    零七广告
    零七广告
    零七广告