我有一個表,其中一個字段是CLOB,它存儲錯誤消息信息。Oracle SQL:從CLOB字段中選擇特定的字符串
字段CLOB爲以下內容:
oracle.retail.sim.common.core.SimServerException: Error processing message! [Inbound: true, MessageType: ItemLocCre, BusinessId: 1101505002]
at oracle.retail.sim.service.mps.SimMessageCommand.buildException(Unknown Source)
at oracle.retail.sim.service.mps.SimMessageProcessCommand.doExecute(Unknown Source)
at oracle.retail.sim.common.core.Command.execute(Unknown Source)
at sun.reflect.GeneratedMethodAccessor273.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:221)
Caused by: oracle.retail.sim.common.core.SimServerException: Item not found for Id: 1101505002
at oracle.retail.sim.server.integration.consumer.itemloc.ItemLocConsumer.buildItemNotFoundException(Unknown Source)
at oracle.retail.sim.server.integration.consumer.itemloc.ItemLocCreateConsumer.handleMessage(Unknown Source)
at oracle.retail.sim.server.integration.consumer.itemloc.ItemLocCreateConsumer.handleMessage(Unknown Source)
at oracle.retail.sim.server.integration.consumer.SimMessageConsumerFactory.consume(Unknown Source)
... 56 more
林試圖顯示直接在PL/SQL輸出的CLOB的結果,因此,使用下面的查詢IM:
select id, dbms_lob.substr(message_error, 4000, 1) AS ERROR_MESSAGE
from THE_TABLE;
我假裝只選擇包含'Caused by ..'字符串的行。我需要的是提取只有以下錯誤信息:
Item not found for Id: 1101505002
這是可能的,只有一個選擇語句?
由於提前, 最好的問候,
向我們展示您的存儲過程 –
喂,是不是程序,只是一個將用於報告提議的簡單查詢。 –
那麼如果你沒有存儲過程,「PL/SQL輸出」來自哪裏呢? –