鸿 网 互 联 www.68idc.cn

当前位置 : 服务器租用 > 服务器相关 > 批处理 > >

在命令行传SQL导出数据文件

来源:互联网 作者:佚名 时间:2016-03-03 12:12
唉!今天一早PL/SQL Developer不能直连数据库了。都改到安全平台上!我要导数据怎么办呀!还好FTP还能上。我就写了个shell脚本,用来导数据。 这个脚本还有个问题就是不支持select * from table的查询,说是查询语句中不能有“ *”星号。 如果想把查询结果存
唉!今天一早PL/SQL Developer不能直连数据库了。都改到安全平台上!我要导数据怎么办呀!还好FTP还能上。我就写了个shell脚本,用来导数据。

这个脚本还有个问题就是不支持select * from table的查询,说是查询语句中不能有“ *”星号。

如果想把查询结果存成excel格式,可以在SQL中把各字段用||','||连起来。如下:

select a||','||b||','||c||','||d from table

把select_return.txt下载到本机,改名成select_return.csv。用EXCEL打开另存为xls格式就可以了。

命令运行时记得要把SQL语句用“”引起来哟!像下面那样!

sql_spool.sh username/password@TNS "sql_string"

<无>
###########脚本开始#############

##!/bin/sh
. $HOME/ .profile
echo "sqlspool username/password@TNS \"sql_string\""
echo "---------------------"
if [ "$1" = "" ] ; then
echo "---------------------"
echo "Please input username/password@TNS"
exit 1

fi
RUNPATH=`pwd`
CONNSTR=$1
SQLSTR=`echo "$2"`
echo "---------------------"
echo $CONNSTR
echo "---------------------"
echo $SQLSTR
echo "---------------------"
sqlplus -s $CONNSTR <<END
set echo off
set pagesize 0
set feedback off
set heading off
set linesize 120
set newpage none
spool $RUNPATH/select_return.txt
$2;
spool off
quit
END

############脚本结束###########
网友评论
<