2013-05-15 70 views
0

在其中一個表中,我列出存儲錯誤信息的列描述。 錯誤消息可以是以下任何一種格式。解析列以獲得所需的輸出

a.failed due to warnings.ERR: [] | WARNINGS: [war1,war2] | Warn_fina [war1,war2] | otherErrors [] 
b.failed due to Errors.ERR: [Err1,Err2] | warnings: [war1,war2] | warn_fina [] | otherErrors [] 
c.Reading failed stacktrace bla bla. 
d.othererror stacktrace bla bla. 

現在我需要編寫,其選擇的所有列選擇查詢,但對於本說明書中列輸出我需要象下面

如果它是類型的或b則輸出爲:ERR1,ERR2, War1,War2 只有括號內前兩個單詞的錯誤和警告。 如果它不是a或b,那麼本專欄不應該有任何內容。

我覺得從oracle Reg表達式是有幫助的。

我們可以通過一個選擇查詢來達到上述標準嗎? 基本上我只需要得到括號中的錯誤碼,警告碼。意味着字符串中的兩個子組。

+0

嘗試使用LIKE子句中的模式。 (另見:http://msdn.microsoft.com/en-us/library/ms187489(v=sql.105).aspx) –

+0

如果我使用like子句,那麼我將丟失其他不像數據的數據。我需要所有列中的所有信息。 – Mahesh

+0

只有額外的條件是指定的列值應該是null或逗號分隔war/err – Mahesh

回答

0

我只能使用regexp_replace和regexp_substr函數獲取錯誤和警告。

我還需要一件事情,我們可以從表中選擇*,regexp_replace()嗎?