더블 해시 (##)로 구분 된 단일 열에있는 데이터를 가져 오려고합니다. 아래에서 언급 한 쿼리에 따라 6 행 대신 5 개의 레코드 만 가져올 수 있습니다.SQL 쿼리 6 행 대신 5 개의 레코드 만 반환
내 connectby
표현에 문제가 있다고 생각할 수 있습니다. 어떤 도움이라도 대단히 감사합니다.
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
오류 메시지는 다음과 같습니다
데이터
Line1## Line2## Line3 ## Line4 ## Line5 ## Line6 ##
쿼리
이 시나리오를 복제 이중 해시 ##로 구분되는 하나의 레코드의 레코드 정보를 가져 오는 데 사용됩니다 분리 할 정보가있는 열. 이제 모든 데이터베이스에서이 문제를 쉽게 복제 할 수 있습니다.
문제를 복제 할 수있는 충분한 정보를 게시 할 수 있습니까? 예 : TEMP 테이블과 6 INSERT 문에 대한 테이블 SQL을 생성하여 데이터를 설정 하시겠습니까? –
물론 이죠, 제가 그걸 만들려고합니다 – JustCoder
@ TonyAndrews 이제 시나리오를 쉽게 복제 할 수 있어야합니다. – JustCoder