StoryCode

'전체 글'에 해당되는 글 570건

  1. Spool 옵션
  2. save as CSV
  3. Tibero 2 CSV

Spool 옵션

Database 관리/Tibero
반응형

# 참조 : https://positivemh.tistory.com/417

 

OS환경 : Oracle Linux6.8(64bit)

 

DB 환경 : Oracle Database 11.2.0.4

 

방법 : sqlplus spool 기능 사용 시 명령어 안나오게 하는방법 sqlplus 명령어

sqlplus에서 spool 기능을 이용해 쿼리를 실행할 때 해당 쿼리도 같이 spool 한 파일에 나옴

기존 방법으로 sqlplus 접속 후 spool 후 쿼리 실행

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
$ sqlplus scoot/tiger
 
SQL*Plus: Release 11.2.0.4.0 Production on Mon Feb 11 16:46:43 2019
 
Copyright (c) 19822013, Oracle.  All rights reserved.
 
 
Connected to:
Oracle Database 11g Enterprise Edition Release 11.2.0.4.0 - 64bit Production
With the Partitioning, Real Application Clusters and Data Mining options
 
SQL> spool imsi1.txt
SQL> select * from emp;
 
     EMPNO ENAME      JOB           MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7839 KING       PRESIDENT (null)       17-NOV-81       5000 (null)           10
      7698 BLAKE      MANAGER          7839 01-MAY-81       2850 (null)           30
      7782 CLARK      MANAGER          7839 09-JUN-81       2450 (null)           10
      7566 JONES      MANAGER          7839 02-APR-81       2975 (null)           20
      7788 SCOTT      ANALYST          7566 19-APR-87       3000 (null)           20
      7902 FORD       ANALYST          7566 03-DEC-81       3000 (null)           20
      7369 SMITH      CLERK          7902 17-DEC-80        800 (null)           20
      7499 ALLEN      SALESMAN          7698 20-FEB-81       1600        300       30
      7521 WARD       SALESMAN          7698 22-FEB-81       1250        500       30
      7654 MARTIN     SALESMAN          7698 28-SEP-81       1250       1400       30
      7844 TURNER     SALESMAN          7698 08-SEP-81       1500      0       30
      7876 ADAMS      CLERK          7788 23-MAY-87       1100 (null)           20
      7900 JAMES      CLERK          7698 03-DEC-81        950 (null)           30
      7934 MILLER     CLERK          7782 23-JAN-82       1300 (null)           10
 
14 rows selected.
 
SQL> spool off
SQL> exit

 

 

spool 된 imsi1.txt 파일 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$ cat imsi1.txt
SQL> select * from emp;
 
     EMPNO ENAME      JOB           MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7839 KING       PRESIDENT (null)       17-NOV-81       5000 (null)           10
      7698 BLAKE      MANAGER          7839 01-MAY-81       2850 (null)           30
      7782 CLARK      MANAGER          7839 09-JUN-81       2450 (null)           10
      7566 JONES      MANAGER          7839 02-APR-81       2975 (null)           20
      7788 SCOTT      ANALYST          7566 19-APR-87       3000 (null)           20
      7902 FORD       ANALYST          7566 03-DEC-81       3000 (null)           20
      7369 SMITH      CLERK          7902 17-DEC-80        800 (null)           20
      7499 ALLEN      SALESMAN          7698 20-FEB-81       1600        300       30
      7521 WARD       SALESMAN          7698 22-FEB-81       1250        500       30
      7654 MARTIN     SALESMAN          7698 28-SEP-81       1250       1400       30
      7844 TURNER     SALESMAN          7698 08-SEP-81       1500      0       30
      7876 ADAMS      CLERK          7788 23-MAY-87       1100 (null)           20
      7900 JAMES      CLERK          7698 03-DEC-81        950 (null)           30
      7934 MILLER     CLERK          7782 23-JAN-82       1300 (null)           10
 
14 rows selected.
 
SQL> spool off

 

 

 

 

-s 옵션 사용해서 sqlplus 접속 후 spool 후 쿼리 실행

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
$ sqlplus -s scott/tiger
spool imsi2.txt
select * from emp;
 
     EMPNO ENAME      JOB           MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7839 KING       PRESIDENT (null)       17-NOV-81       5000 (null)           10
      7698 BLAKE      MANAGER          7839 01-MAY-81       2850 (null)           30
      7782 CLARK      MANAGER          7839 09-JUN-81       2450 (null)           10
      7566 JONES      MANAGER          7839 02-APR-81       2975 (null)           20
      7788 SCOTT      ANALYST          7566 19-APR-87       3000 (null)           20
      7902 FORD       ANALYST          7566 03-DEC-81       3000 (null)           20
      7369 SMITH      CLERK          7902 17-DEC-80        800 (null)           20
      7499 ALLEN      SALESMAN          7698 20-FEB-81       1600        300       30
      7521 WARD       SALESMAN          7698 22-FEB-81       1250        500       30
      7654 MARTIN     SALESMAN          7698 28-SEP-81       1250       1400       30
      7844 TURNER     SALESMAN          7698 08-SEP-81       1500      0       30
      7876 ADAMS      CLERK          7788 23-MAY-87       1100 (null)           20
      7900 JAMES      CLERK          7698 03-DEC-81        950 (null)           30
      7934 MILLER     CLERK          7782 23-JAN-82       1300 (null)           10
 
14 rows selected.
 
spool off

 

spool 된 imsi2.txt 파일 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
     EMPNO ENAME      JOB           MGR HIREDATE        SAL       COMM     DEPTNO
---------- ---------- --------- ---------- --------- ---------- ---------- ----------
      7839 KING       PRESIDENT (null)       17-NOV-81       5000 (null)           10
      7698 BLAKE      MANAGER          7839 01-MAY-81       2850 (null)           30
      7782 CLARK      MANAGER          7839 09-JUN-81       2450 (null)           10
      7566 JONES      MANAGER          7839 02-APR-81       2975 (null)           20
      7788 SCOTT      ANALYST          7566 19-APR-87       3000 (null)           20
      7902 FORD       ANALYST          7566 03-DEC-81       3000 (null)           20
      7369 SMITH      CLERK          7902 17-DEC-80        800 (null)           20
      7499 ALLEN      SALESMAN          7698 20-FEB-81       1600        300       30
      7521 WARD       SALESMAN          7698 22-FEB-81       1250        500       30
      7654 MARTIN     SALESMAN          7698 28-SEP-81       1250       1400       30
      7844 TURNER     SALESMAN          7698 08-SEP-81       1500      0       30
      7876 ADAMS      CLERK          7788 23-MAY-87       1100 (null)           20
      7900 JAMES      CLERK          7698 03-DEC-81        950 (null)           30
      7934 MILLER     CLERK          7782 23-JAN-82       1300 (null)           10
 
14 rows selected.

select * from emp; 구문이 나오지 않음

 

컬럼까지 나오지 않게 설정(set heading off)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
$ sqlplus -s scott/tiger 
set heading off
spool imsi3.txt
select * from emp;
 
      7839 KING       PRESIDENT (null)       17-NOV-81       5000 (null)           10
      7698 BLAKE      MANAGER          7839 01-MAY-81       2850 (null)           30
      7782 CLARK      MANAGER          7839 09-JUN-81       2450 (null)           10
      7566 JONES      MANAGER          7839 02-APR-81       2975 (null)           20
      7788 SCOTT      ANALYST          7566 19-APR-87       3000 (null)           20
      7902 FORD       ANALYST          7566 03-DEC-81       3000 (null)           20
      7369 SMITH      CLERK          7902 17-DEC-80        800 (null)           20
      7499 ALLEN      SALESMAN          7698 20-FEB-81       1600        300       30
      7521 WARD       SALESMAN          7698 22-FEB-81       1250        500       30
      7654 MARTIN     SALESMAN          7698 28-SEP-81       1250       1400       30
      7844 TURNER     SALESMAN          7698 08-SEP-81       1500      0       30
      7876 ADAMS      CLERK          7788 23-MAY-87       1100 (null)           20
      7900 JAMES      CLERK          7698 03-DEC-81        950 (null)           30
      7934 MILLER     CLERK          7782 23-JAN-82       1300 (null)           10
 
14 rows selected.

 

 

 

 

spool 된 imsi3.txt 파일 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
$ cat imsi3.txt
      7839 KING       PRESIDENT (null)       17-NOV-81       5000 (null)           10
      7698 BLAKE      MANAGER          7839 01-MAY-81       2850 (null)           30
      7782 CLARK      MANAGER          7839 09-JUN-81       2450 (null)           10
      7566 JONES      MANAGER          7839 02-APR-81       2975 (null)           20
      7788 SCOTT      ANALYST          7566 19-APR-87       3000 (null)           20
      7902 FORD       ANALYST          7566 03-DEC-81       3000 (null)           20
      7369 SMITH      CLERK          7902 17-DEC-80        800 (null)           20
      7499 ALLEN      SALESMAN          7698 20-FEB-81       1600        300       30
      7521 WARD       SALESMAN          7698 22-FEB-81       1250        500       30
      7654 MARTIN     SALESMAN          7698 28-SEP-81       1250       1400       30
      7844 TURNER     SALESMAN          7698 08-SEP-81       1500      0       30
      7876 ADAMS      CLERK          7788 23-MAY-87       1100 (null)           20
      7900 JAMES      CLERK          7698 03-DEC-81        950 (null)           30
      7934 MILLER     CLERK          7782 23-JAN-82       1300 (null)           10
 
14 rows selected.

위에 나오던 컬럼들이 나오지 않음

 

14 rows seleted. 까지 삭제 하기(set feedback off)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
$ sqlplus -s scott/tiger 
set heading off
set feedback off
spool imsi4.txt
select * from emp;
 
      7839 KING       PRESIDENT (null)       17-NOV-81       5000 (null)           10
      7698 BLAKE      MANAGER          7839 01-MAY-81       2850 (null)           30
      7782 CLARK      MANAGER          7839 09-JUN-81       2450 (null)           10
      7566 JONES      MANAGER          7839 02-APR-81       2975 (null)           20
      7788 SCOTT      ANALYST          7566 19-APR-87       3000 (null)           20
      7902 FORD       ANALYST          7566 03-DEC-81       3000 (null)           20
      7369 SMITH      CLERK          7902 17-DEC-80        800 (null)           20
      7499 ALLEN      SALESMAN          7698 20-FEB-81       1600        300       30
      7521 WARD       SALESMAN          7698 22-FEB-81       1250        500       30
      7654 MARTIN     SALESMAN          7698 28-SEP-81       1250       1400       30
      7844 TURNER     SALESMAN          7698 08-SEP-81       1500      0       30
      7876 ADAMS      CLERK          7788 23-MAY-87       1100 (null)           20
      7900 JAMES      CLERK          7698 03-DEC-81        950 (null)           30
      7934 MILLER     CLERK          7782 23-JAN-82       1300 (null)           10

 

spool 된 imsi4.txt 파일 확인

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
$ cat imsi4.txt
      7839 KING       PRESIDENT (null)       17-NOV-81       5000 (null)           10
      7698 BLAKE      MANAGER          7839 01-MAY-81       2850 (null)           30
      7782 CLARK      MANAGER          7839 09-JUN-81       2450 (null)           10
      7566 JONES      MANAGER          7839 02-APR-81       2975 (null)           20
      7788 SCOTT      ANALYST          7566 19-APR-87       3000 (null)           20
      7902 FORD       ANALYST          7566 03-DEC-81       3000 (null)           20
      7369 SMITH      CLERK          7902 17-DEC-80        800 (null)           20
      7499 ALLEN      SALESMAN          7698 20-FEB-81       1600        300       30
      7521 WARD       SALESMAN          7698 22-FEB-81       1250        500       30
      7654 MARTIN     SALESMAN          7698 28-SEP-81       1250       1400       30
      7844 TURNER     SALESMAN          7698 08-SEP-81       1500      0       30
      7876 ADAMS      CLERK          7788 23-MAY-87       1100 (null)           20
      7900 JAMES      CLERK          7698 03-DEC-81        950 (null)           30
      7934 MILLER     CLERK          7782 23-JAN-82       1300 (null)           10

14 rows seleted. 결과 건수가 나오지 않음

반응형

'Database 관리 > Tibero' 카테고리의 다른 글

Tibero 2 CSV  (0) 2022.01.07
Tibero to PostgreSQL  (0) 2022.01.07

save as CSV

Database 관리/MySQL
반응형

참조 : https://gist.github.com/gaerae/6219678

SELECT * FROM my_table
INTO OUTFILE 'my_table.csv'
CHARACTER SET euckr
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
SELECT * FROM (
    (
        SELECT
            '필드1' AS 'filed_1',
            '필드2' AS 'filed_2'
    ) UNION (
        SELECT
            filed_1,
            filed_2
        FROM my_table
    )
) AS mysql_query
INTO OUTFILE 'my_table.csv'
CHARACTER SET euckr
FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"'
ESCAPED BY '\\'
LINES TERMINATED BY '\n'
mysql -p my_db -e "SELECT * FROM my_table" | sed 's/\t/","/g;s/^/"/;s/$/"/;' > my_table.csv
#!/bin/bash
 
db=YOUR_DB
user=YOUR_USER
pass=YOUR_PASS
 
for table in $(mysql -u$user -p$pass $db -Be "SHOW tables" | sed 1d); do
  echo "exporting $table.."
  mysql -u$user -p$pass $db -e "SELECT * FROM $table" | sed 's/\t/","/g;s/^/"/;s/$/"/;' > $table.csv
done

저는 mysql 8를 사용 중입니다.
1번 쿼리를 사용해보니 'my_table.csv' 파일명에 my.ini의 secure-file-priv 경로를 같이 적어야 정상적으로 파일이 export 되네요.

 

데이터 건 수(몇 십만건)가 많을 경우에는 3번 방법을 사용하면 안될 것 같아요. 데이터 건마다 치환 작업을 해주어야 하니 오랜 시간이 걸립니다.

반응형

'Database 관리 > MySQL' 카테고리의 다른 글

실시간 SQL LOG 남기는 방법  (0) 2023.09.18
2023-226.MySQL,Architecture,아키텍처.우기  (0) 2023.08.06
콘솔.Tag자동완성  (0) 2023.07.31
Plan.용어.설명  (0) 2023.03.22
표준 ANSI SQL MODE (Strict Mode) 사용 On/OFF  (0) 2019.05.03

Tibero 2 CSV

Database 관리/Tibero
반응형

# 참조 : https://cafe-de-java.tistory.com/4

# 참조 : https://tommypagy.tistory.com/80

 

한글문제 ) locale -a export LANG="ko_KR.UTF-8" 

 

티베로에서 쿼리 결과를 CSV 파일로 만드는 스크립트이다.

Shell Script에서 Query String 에 "*" Asterisk 문자가 들어가는 경우 주의해서 처리가 필요하다.

(다운로드 : csv_conver_shell파일.txt

 

 

※ 주의 : Asterisk 처리할 때 <더블 쿼테이션><싱글 쿼테이션><아스테리크><싱글 쿼테이션><더블 쿼테이션> 순서로 작성할 것

 

 

$ cat csv_convert.sh

#!/bin/sh

 

CSV_FILE="/home/tibero/work/out.csv"

QUERY_STR="select "'*'" from all_tables;"

SQL_COMMAND="tbsql -s sys/tibero"

 

RESULT=`$SQL_COMMAND <<EOF

set pagesize 0 feedback off ver off heading off echo off

set pages 0 colsep ',' trimspool on lines 30000 termout off

spool $CSV_FILE

$QUERY_STR

spool off

quit

/

EOF

`

 

 

참고로 Asterisk 문자를 Shell Script에서 Query String안에 들어있는 경우 echo 처리 부분은 아래 박스를 참고할 것

 

 

$ QUERY_STR2="SELECT "'*'" FROM ALL_TABLES"

 

$ echo $QUERY_STR2

SELECT csv_convert.sh out.csv FROM ALL_TABLES  ==> Asterisk문자가 현재 디렉토리의 파일 목록으로 대체된다.

 

$ echo "'$QUERY_STR2'"

'SELECT * FROM ALL_TABLES'

 

$ echo "$QUERY_STR2"

SELECT * FROM ALL_TABLES

 

select 문장에 asterisk 가 들어가는 경우 shell script안에 변수로 처리하기가 까다토울 수 있다.

그래서 tbsql 툴을 사용해서 shell script를 짤 경우에는 @를 이용해서 외부 파일을 실행하는 방법으로 스크립트 작성이 편리해 보인다.

 

반응형

'Database 관리 > Tibero' 카테고리의 다른 글

Spool 옵션  (0) 2022.01.11
Tibero to PostgreSQL  (0) 2022.01.07