2017-02-11 7 views
0

저는 코딩에 익숙하지 않은 독학 PL/SQL 쿼리 작성자입니다. 나는 기본적인 기능을 수행하는 방법을 알고 있지만 정식 교육을받지 않았고 내가 겪은 문제를 해결하기 위해 일반적으로 Google을 제 방식으로 사용했습니다. 대부분의 시간, 난 그냥 PL/SQL 개발자에서 다른 테이블이나 뷰를 가입 오전새로운 테이블의 여러 열에 구분 기호가있는 한 테이블의 열을 어떻게 나누면됩니까?

나는 세 개의 구분 기호,이 경우 ">"일련의 기준으로 테이블에서 줄을 세우려고 노력하고있다 (공백 포함). 예를 들어 Locations라는 테이블에서 "USA> California> Los Angeles"위치를 가져 와서 세 개의 다른 열 (국가, 주 및 도시)로 나누고 싶습니다. 그러나 반복 구분 기호의 수는 다를 수 있습니다. 때로는 미국> 캘리포니아가 될 수도 있고 미국> 캘리포니아> 로스 앤젤레스> 콤프 턴일 수도 있습니다.

나는 하나 개의 테이블

[위치]

[미국> 캘리포니아> 로스 앤젤레스]

이 열을 받아 [다른 테이블

에 세 개의 열을 삽입 할 국가] [시]

[미국] [캘리포니아] [로스 앤젤레스]

지금까지는 쿼리와 함수/고급 기술을 사용하지 않고서 만 돌아볼 수있었습니다. 이 간단한 및 쿼리로 유지할 수있는 방법이 있다면, 정말 통찰력을 주셔서 감사합니다! 다시 말하지만, 필자는 PL/SQL 개발자를 사용하여 내가 사용할 수있는 특정 기능을 제한한다는 것을 알고 있습니다.

답변

0

너무 멋진하지만 당신을 위해 작동해야하지 :

insert into <your table 2> (Country, State, City) 
    select trim(REGEXP_SUBSTR(Location, '^([^>])*')), 
      trim(REGEXP_REPLACE(REGEXP_SUBSTR(Location, '>([^>])*'), '>', '')), 
      trim(REGEXP_REPLACE(REGEXP_SUBSTR(Location, '>([^>])*', 1, 2), '>', '')) 
     from <your table 1>; 

감사