tbadmin을 이용하여 excel 파일에 입력된 데이터를 import 해보자

|

tbadmin을 이용하여 excel 파일에 입력된 데이터를 import 해보자

Posted at 2012/10/30 18:17 | Posted in 개발자 이야기/티베로 (Tibero)

 

개  요

 

 

mysql에서 tibero로 데이터를 이관해야 하는데 중간에 정제 작업을 거쳐야 했다 딱히 마땅한 수정 프로그램이 없어서 mysql에서 csv 파일로 export 하여 다시 csv 파일을 엑셀에서 열어 수정 작업을 거치고 다시 tibero로  import 해야 하는 상황이었다.

 

 

준비과정

 

 

먼저 mysql에서 이관할 테이블을 csv 파일로 export 하고 (아래 링크 참조)

 

2012/10/30 - [개발자 이야기/MYSQL] - csv 파일을 이용하여 데이터 export import 하는 방법

 

 

엑셀에서 열어 데이터 수정을 실시하고 다시 csv 파일로 저장하는게 아니라 xls(2003 버젼) 으로 저장

(절대 xlsx 파일로 저장하면 안됨 tbadmin 에서 지원하지 않음)

 

 

 

 

TbAdmin 에서

 

 

tbadmin 메뉴에서 tool → ExpImp 메뉴 클릭 아래와 같은 창이 뜬다

 

 

 

Use Excel file 체크 후 Import 텝을 클릭 하면 아래와 같은 화면이 나온다.

 

source file 에는 import할 excel 파일을 선택하고 Destination table 에는 import 할 테이블을 선택한다 또 ignore the first line에 체크한다(단 엑셀파일 첫줄에 항목이름이 있다면 체크 바로 데이터가 있다면 체크하지 말것)  Start Importing 클릭 하면 아래와 같은 화면이 뜬다. 

 

 

 

 

전체필드에 입력하지 않을경우 필요없는 필드는 삭제해도 무관하다 적당히 필드 맵핑하고 ok 클릭하면 끝

And

공백 구분자로 텍스트 자르기

|


with a as (
    select '제주특별자치도 서귀포시 광평로 105 ( 안덕면, 통나무힐스 )' bigo from dual
    union all
    select '부산광역시 강서구 대저1동 4302-22' from dual
)
select  bigo
    , regexp_substr(bigo, '[^ ]+',1,1) a
    , regexp_substr(bigo, '[^ ]+',1,2) b
    , regexp_substr(bigo, '[^ ]+',1,3) c
    , regexp_substr(bigo, '[^ ]+',1,4) d
    , regexp_substr(bigo, '[^ ]+',1,5) e
from a

And

특수문자 기준 문자열 자르기 문의 드립니다~

|
http://www.gurubee.net/article/62172

 

 

특수문자 기준 문자열 자르기 문의 드립니다~
 
안녕하세요~ 요즘 날씨가 많이 포근해졌네요~ 즐거운 한주 되세요~


문자열 ';' 기준으로 아래 값들을

HT1816112121400121;로스엔젤레스;부산광역시 강서구 대저1동 4302-22
HT7014021412091123;대한민국;부산광역시 강서구 대저1동 4302-22
HT1611221911240214;오스트레일리아;부산광역시 강서구 대저1동 4302-22

A컬럼에 HT1816112121400121
B컬럼에 로스엔젤레스
C컬럼에 부산광역시 강서구 대저1동 4302-22

A,B,C 컬럼에 나누어 넣으려고 합니다...

SELECT BIGO, SUBSTR(BIGO,1,INSTR(컬럼,';')-1) A, REVERSE(SUBSTR(REVERSE(BIGO), 19, INSTR(REVERSE(BIGO), ';') -1)) B, REVERSE(SUBSTR(REVERSE(BIGO), 1, INSTR(REVERSE(BIGO), ';') - 1)) C
FROM 테이블명 WHERE  BIGO LIKE '%;%'; 이렇게 했더니...

B에 들어가는 값들이 '로스엔젤레스;부산광역시' 또는 '대한민국;부산광역시 강서구'  이런식으로 들어가는데요...
B컬럼 구문 어느곳이 틀린건지 문의 드립니다...


그리고 가운데 '로스엔젤레스, 대한민국, 오스트레일리아' 만 가져오려고 구문을 짜봤는데 
'로스엔젤레스;부산광역시' 이렇게 나옵니다...
SELECT BIGO
, REGEXP_REPLACE(SUBSTR(BIGO, INSTR(BIGO, ';', 1) +1), '\(;*\)') T
FROM (SELECT BIGO FROM 컬럼명);

두개의 쿼리에 대해 조언 부탁드리겠습니다.....

 

글 등 록 목록보기

댓글 목록
  •  
    마농 (30,074:Lv60) [2014년 03월 25일 23시]

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    -- 1. 어차피 a 는 고정 자리수일텐데 Instr 은 뭐하러 하나요?
    -- 2. Why Reverse?
    -- 3. 정규식 패턴 사용이 적절하지 않고요...
    WITH t AS
    (
    SELECT 'HT1816112121400121;로스엔젤레스;부산광역시 강서구 대저1동 4302-22' bigo FROM dual
    UNION ALL SELECT 'HT7014021412091123;대한민국;부산광역시 강서구 대저1동 4302-22' FROM dual
    UNION ALL SELECT 'HT1611221911240214;오스트레일리아;부산광역시 강서구 대저1동 4302-22' FROM dual
    )
    SELECT bigo
         -- 1. a 가 자리수 고정인 경우
         , SUBSTR(bigo, 1, 18) a1
         , SUBSTR(bigo, 20, INSTR(bigo, ';', 1, 2)-20) b1
         , SUBSTR(bigo, INSTR(bigo, ';', 1, 2)+1) c1
         -- 2. 자리수와 상관 없이
         , SUBSTR(bigo, 1, INSTR(bigo, ';')-1) a2
         , SUBSTR(bigo, INSTR(bigo, ';')+1, INSTR(bigo, ';', -1)-INSTR(bigo, ';')-1) b2
         , SUBSTR(bigo, INSTR(bigo, ';', -1)+1) c2
         -- 3. 정규식 이용
         , REGEXP_SUBSTR(bigo, '[^;]+', 1, 1) a3
         , REGEXP_SUBSTR(bigo, '[^;]+', 1, 2) b3
         , REGEXP_SUBSTR(bigo, '[^;]+', 1, 3) c3
      FROM t
    ;
And