sql developer update 질문 입니다. 0 4 2,048

by 호원동 [SQL Developer] [2013.12.16 16:38:10]


도로명 주소 변경 진행중인데
기존 주소를 도로명주소로 update 하려고 합니다.
도로명주소 변환은 juso.go.kr에서 txt 파일로 받아 놓은 상태입니다.


update문 where절에 기존 주소와 현재 받은 파일의 기존주소 부분을 비교해서 같으면 update 하려고 하는데
이런 작업이 처음이라 어떻게 해야할지 모르겠네요.;;



#### 변환 된 txt 파일 ####
00;690-121;제주도 제주시 아라1동 2360;제주특별자치도 제주시 구산로 50 (아라일동);5011011700123600000049905

세미콜론을 구분자로해서 substr로 잘라서 비교를 하려고 하는데
생각처럼 구문이 떠오르지 않아서 질문드립니다.



예를 들어,
update substrtest
set addr = (select substr(aa, instr(aa, ';', 1, 3)+1, instr(aa, ';', 1, 4)-instr(aa, ';', 1, 3)-1) as doroname
              from (select '00;122-802;서울특별시 은평구 갈현2동 240-1번지;서울특별시 은평구 갈현로29길 27 (갈현동);1138010400102400001029919' aa
                      from dual)
            )
where addr = (select substr(aa, instr(aa, ';', 1, 2)+1, instr(aa, ';', 1, 3)-instr(aa, ';', 1, 2)-1) as jibun
                from (select '00;122-802;서울특별시 은평구 갈현2동 240-1번지;서울특별시 은평구 갈현로29길 27 (갈현동);1138010400102400001029919' aa 
                        from dual));  


 update (table)
      set (update 하려는 column) = (txt 에서 한줄을 가져와서 substr로 도로명 주소부분 가져옴)
  where (update 하려는 column) = (txt 에서 한줄을 가져와서 substr로 기존 주소부분 가져옴) 


이렇게 하려고 하는데

sql deloper에서 이렇게 구현을 한다고 하면
txt파일에서 해당 data를 어떻게 가져 올 수 있을까요?

이거 말이 안되는건가요?ㅠ_ㅠ
by 우리집아찌 [2013.12.16 17:05:47]
WITH T AS (
SELECT REGEXP_SUBSTR(aa,'[^;]+',1,3) OLD_ADDR ,
    REGEXP_SUBSTR(aa,'[^;]+',1,4) NEW_ADDR 
FROM(
  select '00;122-802;서울특별시 은평구 갈현2동 240-1번지;서울특별시 은평구 갈현로29길 27 (갈현동);1138010400102400001029919' aa from dual 
  union all
  select '01;122-803;서울특별시 은평구 갈현2동 240-1번지;서울특별시 은평구 갈현로30길 28 (갈현동);1138010400102400001029920' aa from dual 
  )
)

UPDATE TABLE A 
  SET ADDR  = (SELECT NEW_ADDR FROM NEW_ADDR T WHERE OLD_ADDR = A.ADDR )
 

by 호원동 [2013.12.16 17:12:18]
우리집아찌님 //

시간 내서 답변 달아주셔서 감사합니다.

한가지만 더 여쭙겠습니다.

1. txt파일에 수만라인이 저장되어 있습니다.
2. sql문으로 txt파일(혹은 excel파일)의 내용을 한줄씩 읽어 올 수 있을까요?

orange나 sql developer에서 이런 기능이 혹시 지원이 될까 해서요..;;

이건 지나친 욕심일까요?ㅠ_ㅠ

by 우리집아찌 [2013.12.16 17:24:24]
저같으면 테이블하나 만들어서 데이타를 올려서 사용할듯합니다.

올리는 방법은 SQL LOADER 추천합니다.

 http://www.gurubee.net/lecture/1120

by 호원동 [2013.12.16 17:28:16]
답변 감사드립니다.!!
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입