2017-06-01 42 views
0

我有以下可能的價值$ 6來到netcool綜合規則。 我想從$ 6netcool omnibus探測器規則

Eg: SQLSERVER1 
SQL2012TESTRTM 
SQL2012TESTSTD1 
SQL2014STD 
MSSQLSERVER 

提取實例名下面是$ 6個值

6 = "Microsoft.SQLServer.DBEngine:TM-B33F-FAD4.cap.dev.net;SQLSERVER1:1" 
6 = "Microsoft.SQLServer.2012.Agent:TM-B33F-FAD4.cap.dev.net;SQL2012TESTRTM;SQLAgent$SQL2012TESTRTM:1" 
6 = "Microsoft.SQLServer.2012.Agent:TM-B33F-FAD4.cap.dev.net;SQL2012TESTRTM;SQLAgent$SQL2012TESTRTM:1" 
6 = "Microsoft.SQLServer.2012.Agent:TM-B33F-FAD4.cap.dev.net;SQL2012TESTSTD1;SQLAgent$SQL2012TESTSTD1:1" 
6 = "Microsoft.SQLServer.Database:TM-B33F-FAD4.cap.dev.net;SQL2012TESTSTD1;DB2:1" 
6 = "Microsoft.SQLServer.2012.Agent:TM-B33F-FAD4.cap.dev.net;SQL2012TESTRTM;SQLAgent$SQL2012TESTRTM:1" 
6 = "Microsoft.SQLServer.2014.Agent:TM-B33F-FAD4.cap.dev.net;SQL2014STD;SQLAgent$SQL2014STD:1" 
6 = "Microsoft.SQLServer.Database:TM-B33F-FAD4.cap.dev.net;SQL2012TESTSTD1;DB2:1" 
6 = "Microsoft.SQLServer.2014.DBEngine:TM-B33F-FAD4.cap.dev.net;SQL2014STD:1" 
6 = "Microsoft.SQLServer.Database:TM-B33F-FAD4.cap.dev.net;SQL2012TESTSTD1;DB2:1" 
6 = "Microsoft.SQLServer.2014.Agent:TM-B33F-FAD4.cap.dev.net;SQL2014STD;SQLAgent$SQL2014STD:1" 
6 = "Microsoft.SQLServer.Database:TM-B33F-FAD4.cap.dev.net;SQL2012TURKSTD1;DB1:1" 

6 = "Microsoft.SQLServer.2014.DBFile:CTNTV01;MSSQLSERVER;SPOT;1;35:1" 

6 = "Microsoft.SQLServer.Library.EventLogCollectionTarget:TM-B33F-FAD4.cap.dev.net:1" 

我曾嘗試下面的代碼中提取,它適用於上述大部分。

  @temp = extract($6, ";([^\:]+)\:") 
      if (regmatch(@temp, "[\;]")) 
      { 
        @temp = extract(@temp, "([^\:]+)\;") 
      } 

但它不工作了

Microsoft.SQLServer.2014.DBFile:CTNTV01;MSSQLSERVER;SPOT;1;35:1 

我相信第二提取物中的if語句需要更正而已。 它提取,直到MSSQLSERVER;SPOT;1,但是我只想從它MSSQLSERVER

你能幫我解決這個問題嗎?

回答

0

請嘗試以下。

@temp = extract($6, ";([^\:]+)\:") 
     if (regmatch(@temp, "[\;]")) 
     { 
       @temp = extract(@temp, "([^\;]+)\;") 
     }