2013-04-30 3 views
0

행을 여러 행으로 분할해야합니다.열의 문자열 값을 구문 분석하여 테이블의 행을 여러 행으로 분할

열의 샘플 값은 다음과 같습니다.

Message for status: warnings: [w1,w2] | errors: [e1,e2] | other_errors: [e3] 

위의 전체 메시지는 하나의 열 값입니다. 나는 어떤 사람이 어떻게이 일을 도와 줄 수

w1 
w2 
e1 
e2 
e3 
  • 처럼에게 여러 행을 분할해야합니까?
+0

가능한 복제본 [PL/SQL 저장 프로 시저에서 쉼표로 구분 된 문자열 분리] (http://stackoverflow.com/questions/4004377/splitting-comma-separated-string-in-a-pl-sql-stored- proc) – APC

+0

select의 목적을 위해 또는이 행을 다른 테이블에 삽입 하시겠습니까? –

+0

선택시이 번호가 필요합니다. – Mahesh

답변

0

여기 열로 분할을위한 하나의 방법이다 :

select 
    ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,1) ,',') s1, 
    ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,2) ,',') s2, 
    ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,4) ,',') s3, 
    ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,5) ,',') s4, 
    ltrim(regexp_substr(translate(col1,'[]',',,'),',([^,]+)', 1,7) ,',') s5 
from 
    t1; 

그런 다음 당신은 그것을 피벗 해제해야하고, SE에 대한 많은 예들이있다.

관련 문제