我想獲取單列中存在的數據,該列使用雙散列(##)分隔。根據我下面提到的查詢,我能夠只取5條記錄而不是6條記錄。SQL查詢返回只有5條記錄,而不是6行
我可以認爲我的connectby
表達式存在一些問題。任何幫助是極大的讚賞。
數據
Line1## Line2## Line3 ## Line4 ## Line5 ## Line6 ##
查詢用來獲取被分隔雙哈希##在一條記錄記錄
複製場景:
create table temp (errormessage varchar2(300))
insert into temp errormessage values('Line1## Line2## Line3 ## Line4 ## Line5 ## Line6 ##')
WITH sample_data
AS (SELECT errormessage AS Error_Message
FROM TEMP)
SELECT Regexp_substr(error_message, ',?([^#]*)', 1, LEVEL, 'i', 1) AS Error_Message
FROM sample_data
WHERE Length(Regexp_substr(error_message, ',?([^#]*)', 1, LEVEL, 'i', 1)) != 0
CONNECT BY (Regexp_count(error_message, '#') + 1 >= LEVEL AND
PRIOR dbms_random.value IS NOT NULL)
ORDER BY LEVEL
錯誤信息具有要分隔的信息的列。現在,在任何數據庫中複製問題都非常容易。
您是否可以發佈足夠的信息來重現問題 - 例如爲表TEMP創建表SQL並使用6條插入語句來設置數據? –
當然,讓我試試創建那個 – JustCoder
@TonyAndrews現在你應該能夠輕鬆地複製場景。 – JustCoder