Я пытаюсь получить данные, представленные в одном столбце, который разделен двойным хешем (##). Согласно моему запросу, упомянутому ниже, я могу получить только 5 записей вместо 6 строк.SQL Query Возвращает только 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
Сообщение об ошибке является столбец, который имеет информацию, подлежащую разграничению. Теперь довольно легко реплицировать проблему в любой из ваших баз данных.
Можете ли вы опубликовать достаточно информации для повторения проблемы - например, создать таблицу SQL для таблицы TEMP и 6 вставных операторов для настройки данных? –
Несомненно, позвольте мне попытаться создать это – JustCoder
@TonyAndrews Теперь вы сможете легко реплицировать сценарий. – JustCoder