문자열을 특정문자열로 분리 하여 배열이 넣는것 0 4 1,846

by 돌배뚝 문자열 [2014.09.29 19:37:32]


안녕하십니까?
가입하자마자 질문 들어가네여 ㅎㅎ
문자열 "ABC|EF||G|||F"  값이 있고 "|" <- 입력값(변경될수 있음) 로 구분자로..

문자열을 | 를 구분자로 쪼개서 아래와 같이 Arry호스트변수에 담을 수가 있나여 ?
Arry[0] = ABC
Arry[1] = EF
Arry[2] =
Arry[3] = G
Arry[4] =
Arry[5] =
Arry[6] = F

연속 파이프가 있으면 그 갯수만큼 공란필요 합니다.

 



 

 

 

by 아발란체 [2014.09.30 09:29:35]

정규식이 된다면

WITH T AS (
  SELECT 'ABC|EF||G|||F' AS VAL FROM DUAL
)
SELECT
  REGEXP_SUBSTR(VAL, '[^|]*', 1, LEVEL) INTO 배열변수(LEVEL)
FROM
  T
CONNECT BY
  LEVEL < REGEXP_COUNT(VAL, '[^|]*')

 


by 돌배뚝 [2014.09.30 10:52:43]

답글 감사드립니다.

그런데 님 말씀처럼  ORA-00904 : "REGEXP_COUNT": invalid identifier

오류가 납니다. - 정규식 지원을 안한다는건가여 ?


by 아발란체 [2014.09.30 11:04:58]

네 REGEXP_COUNT가 지원되지 않는 것 같네요.

위에 정규식도 문제가 좀 있네요. ^^;

WITH T AS (
  SELECT 'ABC|EF||G|||F' AS VAL FROM DUAL
)
SELECT
  REPLACE(REGEXP_SUBSTR(VAL, '[^|]*(\||)', 1, LEVEL), '|', '') INTO 배열변수(LEVEL)
FROM
  T
CONNECT BY
  LEVEL <= LENGTH(REGEXP_REPLACE('ABC|EF||G|||F', '[^|]', '')) + 1;
  
  

 


by 돌배뚝 [2014.09.30 11:11:18]

존경합니다.

정말 감사드립니다. 꾸~뻑

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입