whenever sqlerror exit sql.sqlcode;
accept tarpath
set echo off newpage 0 pagesize 50000 feed off heading on term off trims on linesize 1000 trimspool on colsep '|' numw 20
column '机构号' format a10
column '机构名称' format a30
column '部门号' format a10
column '部门名称' format a30
column '帐号类型' format a10
column '帐户号' format a30
column '户名' format a30
column '定活期折单号' format a20
column '交易码' format a10
column '交易柜员' format a10
column '交易日期' format a10
column '交易时间' format a10
column '流水号' format a10
column '传票号' format a10
column '借方发生额' format 9999999999999999999.99
column '贷方发生额' format 9999999999999999999.99spool &tarpath/PRI_1_0018.txt
select 'DPBL1001 储蓄动户清单' as "------------说明--------------" from dual;
select orgidt 机构号,
trim(orgnam) 机构名称,
depidt 部门号,
trim(depnam) 部门名称,
acttyp 帐号类型,
actno 帐户号,
trim(actnam) 户名,
passbook 定活期折单号,
deanum 交易码,
deaemp 交易柜员,
deadat 交易日期,
deatim 交易时间,
lsnum 流水号,
billnum 传票号,
lstdbal 借方发生额,
lstcbal 贷方发生额
from chk_pri_dpbl1001;
spool off
exit;#!/bin/ksh
########################################
#
#
#
########################################
#数据日期
RUNDATE=$1
#目标路径
TARPATH=./dest/PRI/
#数据库用户
USER=sbs390
#数据库密码
PW=sbs390
#公共目录
export cpath=/siebel/sbstest/CHK
log=${cpath}/log/PRI_MAIN.log>${cpath}/log/PRI_MAIN.log
main() {
if [ ! -d "${TARPATH}${RUNDATE}" ]; then
mkdir ${TARPATH}${RUNDATE}
else
rm -r -f ${TARPATH}${RUNDATE}
mkdir ${TARPATH}${RUNDATE}
fi
for tab in `ls ./sbin/Sql/`
do
if [ "`echo "${tab}" |cut -d_ -f1`" = "PRI" ];then
echo "运行----echo ${TARPATH}${RUNDATE}|sqlplus ${USER}/${PW} @./sbin/Sql/${tab}"
echo "${TARPATH}${RUNDATE}"|sqlplus ${USER}/${PW} @./sbin/Sql/${tab}
if [ $? != 0 ];then
echo "执行 ---echo ${TARPATH}${RUNDATE}|sqlplus ${USER}/${PW} @./sbin/Sql/${tab} 失败!"
exit 1
fi
fi
done
}
main |tee -a ${log}
当调用完shell后 查到的数据写入在spool中指定的文件中后 我想将这个文件中的数据打包 可是怎么来找这个路径啊?
accept tarpath
set echo off newpage 0 pagesize 50000 feed off heading on term off trims on linesize 1000 trimspool on colsep '|' numw 20
column '机构号' format a10
column '机构名称' format a30
column '部门号' format a10
column '部门名称' format a30
column '帐号类型' format a10
column '帐户号' format a30
column '户名' format a30
column '定活期折单号' format a20
column '交易码' format a10
column '交易柜员' format a10
column '交易日期' format a10
column '交易时间' format a10
column '流水号' format a10
column '传票号' format a10
column '借方发生额' format 9999999999999999999.99
column '贷方发生额' format 9999999999999999999.99spool &tarpath/PRI_1_0018.txt
select 'DPBL1001 储蓄动户清单' as "------------说明--------------" from dual;
select orgidt 机构号,
trim(orgnam) 机构名称,
depidt 部门号,
trim(depnam) 部门名称,
acttyp 帐号类型,
actno 帐户号,
trim(actnam) 户名,
passbook 定活期折单号,
deanum 交易码,
deaemp 交易柜员,
deadat 交易日期,
deatim 交易时间,
lsnum 流水号,
billnum 传票号,
lstdbal 借方发生额,
lstcbal 贷方发生额
from chk_pri_dpbl1001;
spool off
exit;#!/bin/ksh
########################################
#
#
#
########################################
#数据日期
RUNDATE=$1
#目标路径
TARPATH=./dest/PRI/
#数据库用户
USER=sbs390
#数据库密码
PW=sbs390
#公共目录
export cpath=/siebel/sbstest/CHK
log=${cpath}/log/PRI_MAIN.log>${cpath}/log/PRI_MAIN.log
main() {
if [ ! -d "${TARPATH}${RUNDATE}" ]; then
mkdir ${TARPATH}${RUNDATE}
else
rm -r -f ${TARPATH}${RUNDATE}
mkdir ${TARPATH}${RUNDATE}
fi
for tab in `ls ./sbin/Sql/`
do
if [ "`echo "${tab}" |cut -d_ -f1`" = "PRI" ];then
echo "运行----echo ${TARPATH}${RUNDATE}|sqlplus ${USER}/${PW} @./sbin/Sql/${tab}"
echo "${TARPATH}${RUNDATE}"|sqlplus ${USER}/${PW} @./sbin/Sql/${tab}
if [ $? != 0 ];then
echo "执行 ---echo ${TARPATH}${RUNDATE}|sqlplus ${USER}/${PW} @./sbin/Sql/${tab} 失败!"
exit 1
fi
fi
done
}
main |tee -a ${log}
当调用完shell后 查到的数据写入在spool中指定的文件中后 我想将这个文件中的数据打包 可是怎么来找这个路径啊?
然后在指定的目录下找就可以了