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
--------------------------问题四: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.99
--------------------问题二:整个上面是不是在建表啊
spool &tarpath/PRI_1_0018.txt
select 'DPBL1001 储蓄动户清单' as "------------说明--------------"   from dual;
select orgidt   机构号,
       问题三:储蓄动户清单(例如上面的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
------------------------问题二:$1这是什么意思啊(我上网查看说是传参   可是怎么传啊)
#目标路径
TARPATH=./dest/PRI/
#数据库用户
USER=sbs390
------------------------问题三:sbs390这个是定义的常量吗
#数据库密码
PW=sbs390
#公共目录
export cpath=/siebel/sbstest/CHK
------------------------问题四:export是什么意思啊    上面这句话是干什么的啊
log=${cpath}/log/PRI_MAIN.log>${cpath}/log/PRI_MAIN.log
------------------------问题五:>这个在这行最前面的尖括号是什么意思啊    上面这句话中${cpath}是怎么取参数的   与不加中括号有区别吗
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
------------------------问题六:下面这几个${tab}是干什么的啊  是传参的吗  那又怎么传参怎么接参数啊
if [ "`echo "${tab}" |cut -d_ -f1`" = "PRI" ];then
------------------------问题七:"`echo "${tab}" |cut -d_ -f1`" = "PRI" 是什么意思啊
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}//这是固定写法吗   是什么意思啊
-----------------------问题八:上面的spool与下面的函数是怎么配合的////////////////////////////////////////////////////////////////////////////////////////////
 sh ./sbin/conv/RPBL1002.sh  ${cpath}/sdata/PUB/RPBL1002.tmp   ${cpath}/data/PUB/RPBL1002.txt
这句话是什么意思啊
////////////////////////////////////////////////////////////////////////////////////////////
#!/bin/ksh
########################################
#
#
#
#########################################数据日期
RUNDATE=$1
#目标路径
TARPATH=./PRI/
#数据库用户
USER=jgreport
#数据库密码
PW=tropergj
#公共目录
export cpath=./CCHHKK
log=${cpath}/PRI_MAIN.log.>${cpath}/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}
echo "sdsdsdsds=============="$?
if [ $? !=  0 ];then
        echo "执行 ---echo ${TARPATH}${RUNDATE}|sqlplus ${USER}/${PW}  @./sbin/Sql/${tab}
失败!"
  exit 1
fi
fi
done
}
main |tee -a ${log}

解决方案 »

  1.   

    都是一些很基础的问题前一部分和oracle的sql*form相关后一部分和shell脚本相关LZ还是花点时间去看看这两部分的内容吧
      

  2.   

    我的哥哥啊,你能不能先google下啊,这些都是最基本的set echo off ,format a10是sqlplus的显示的格式化相关的内容
    SPOOL是将SQLPLUS结果写入到文本文件
    #!/bin/ksh 之后都是LINUX shell的知识,好好学习吧,别泡妞了