该Shell脚本用于实现将DB2数据库表导出到文件,将在另一篇博文《Java代码调用Shell脚本并传入参数实现DB2数据库表导出到文件》中通过Java代码实现调用该脚本并传入参数。
1 #!/usr/bin/env sh 2 3 DBSCHEMA=$1 4 DBUSER=$2 5 DBPASSWORD=$3 6 TABLENAME=$4 7 FILEPATH=$5 8 DELIMITER=$6 9 EXPORTLIMIT=$7 10 11 SQLERR="NO ERROR MSG" 12 13 ############################################################ 14 # : wlog String 15 ############################################################ 16 wlog () { 17 wlog_dt=`date "+%Y/%m/%d-%H:%M:%S" ` 18 echo "\n${wlog_dt} $1" 19 } 20 21 ############################################################ 22 # : db2connect db2connstring 23 ############################################################ 24 connDB2() { 25 wlog "====================connect to $1=======================" 26 wlog "db2 connect to $1 user $2 " 27 ## conn=db2 connect to $1 user $2 using $3 > /dev/null 28 if( db2 connect to $1 user $2 using $3 > /dev/null ) 29 then 30 wlog "Succeed connect to $1 " 31 else 32 wlog "Failed connect to $1 " 33 exit -1 34 fi 35 } 36 37 ############################################################ 38 # : db2connectRelease db2connstring 39 ############################################################ 40 releaseDB2() { 41 db2 connect reset > /dev/null 42 } 43 44 ############################################################ 45 # : db2export 46 ############################################################ 47 exportDB2() { 48 connDB2 ${DBSCHEMA} ${DBUSER} ${DBPASSWORD} 49 sql=" select * from ${TABLENAME} ${EXPORTLIMIT}" 50 wlog "export to ${FILEPATH} of del modified by codepage=1208 COLDEL| ${sql}: " 51 db2 "export to ${FILEPATH} of del modified by nochardel codepage=1208 COLDEL| ${sql}" 52 } 53 54 ############################################################ 55 # : main 56 ############################################################ 57 run() { 58 # connDB2 ${DBNODE} ${DBUSER} ${DBPASSWORD} ${DBNAME} 59 # sql=" select inter_no,op_time from inter_log " 60 61 # db2 -x ${sql}| while read inter_no op_time 62 # do 63 # echo "Result:${inter_no}->${op_time}" 64 # done 65 66 echo "Begin to export the data: " 67 exportDB2 68 69 echo "Close the connection." 70 releaseDB2 71 } 72 73 echo "execute sql ................." 74 run
其中以下导出命令将会去除导出文件中字符串的双引号:
1 db2 "export to ${FILEPATH} of del modified by nochardel codepage=1208 COLDEL| ${sql}"
COLDEL指定了分隔符为|
如果需要保留字符串双引号命令:
1 db2 "export to ${FILEPATH} of del modified by codepage=1208 COLDEL| ${sql}"