Technical NOTE
[Shell] Tibero에서 쿼리결과를 CSV 파일로 만드는 Shell Script 본문
티베로에서 쿼리 결과를 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를 짤 경우에는 @를 이용해서 외부 파일을 실행하는 방법으로 스크립트 작성이 편리해 보인다.
- 작성일 : 2018년 8월 10일
'데이터베이스 > Tibero' 카테고리의 다른 글
[Shell] sql 목록 파일을 split 한 후 xaa로 된 파일명 끝에 .sql 붙이기 (0) | 2018.08.14 |
---|---|
[Shell] insert 문장으로 된 sql파일에 commit 추가하기 (0) | 2018.08.14 |
[Shell] owner의 전체 table을 truncate 시키는 문장 생성 shell (0) | 2018.08.14 |