怎样写脚本:实现把一个文件夹里的所有.SQL后缀的文件一次性都执行.如有一个文件夹名为DBCRIPTS里有a.sql,b.sql,zz.sql,ww.sql等等.我要实现执行一个脚本后就把DBCRIPTS所有的.sql里的脚本全执行了

解决方案 »

  1.   

    #shell脚本:#!/usr/bin/kshfor sqlfilepath in `ls DBCRIPTS/*.sql`
    do
    msg=`sqlplus -S ${USR}<<EOF
    $sqlfilepath;
    disconnect
    exit
    EOF`
    done
      

  2.   

    1楼的shell加上@应该可以,但是需要logon/disconnect许多次,挺浪费的。我以为还是先把@xxxx.sql写到一个总的main.sql里面再执行要好一些,比如
    #!/bin/ksh
    ...
    ls *.sql |awk '{print "@"$1}' > main.sql
    $ORACLE_HOME/bin/sqlplus -S <username/password> @main
    ...
      

  3.   

    在导出脚本的时候;选择单一文件;
    在导入;
    用命令行方式;登录oracle @a.sql;