티베로에서 쿼리 결과를 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일


+ Recent posts