zoukankan      html  css  js  c++  java
  • bat批处理文件执行Oracle sql语句

    下面记录一下自己制作一个同步用户的批处理文件执行oracle sql语句的过程。

    1. 新建一个空白的文本文件,修改名称为   同步程序.bat
    2. 打开该文件,在文件中输入如下内容

    sqlplus /nolog   @runSql.sql>runSql.log

    @echo   执行完成,请查看runSql.log日志文件以确认是否正确执行。

    PAUSE

    创建好之后保存。

    说明:sqlplus命名会打开sqlplus/nolog表示不登陆到oracle(这里设置为nolog的话就需要在runSql.sql这个文件里面执行命令前连接到数据库) @runSql.sql表示使用sqlplus打开runSql.sql文件以执行该文件内的命令,>runSql.log表示将执行命令的日志信息输入到runSql.log文件中。runSql.sql文件需要放在  同步程序.bat 在同一目录中,runSql.log日志文件可以不用创建,执行bat的过程中会自动创建。

    3、创建runSql.sql文件,在该文件中输入如下命令

    set feedback 1

    set timing on

    set autoprint on

    WHENEVER sqlERROR continue

     

    conn hangwq/neusoft@local

    PROMPT 已连接到本地数据库,准备执行数据同步...

    var sqlCode number;

    var sqlMsg varchar2(100);

     

    execute emr_pkg.what(:sqlCode,:sqlMsg);

    Commit;

    SHOW ERROR

    disconnect

     

    conn system/neusoft@local

    Insert into t_department values(2,'dfdf','dfdf',sysdate);

    Commit;

    SHOW ERROR

    disconnect

    exit;

    创建好了之后保存,双击同步用户.bat即可执行。 

    以上示例中,演示了如下功能

    连接到一个用户,并执行了该用户下一个包中的存储过程(包名是emr_pkg,存储过程名是what,两个out输出参数),完成后提交并显示 执行过程中是否有错误,然后断开,再次连上另外一个用户上去,执行了一条语句并提交,并显示执行过程是否有错误。

    几个命令说明

    set feedback 1//显示当前sql语句查询或者修改的 行数

    set timing on//现实执行sql语句使用的时间

    set autoprint on//设置自动显示PLSQL块和EXECUTE中的绑定变量,以上为sqlCode sqlMsg 两个变量

    WHENEVER sqlERROR continue//当语句顺序执行的过程中 ,肯能会出现sql语句错误 ,在出现此类错误的情况下如何处理 ,这里设置为continue,即为该错误忽略,继续往下执行 ,也可以 选择rollbackcommit、或者 exit来回滚、提交 或者 退出

    PROMPT text//将制定的信息输出来,如果text为空则输出一个空行。

    SHOW ERROR //如果 执行过程中出现了错误 ,则将错误信息输出。

    以上几个命令均为sqlplus命令,需要查看sqlplus的所有命令,可以打开sqlplus,在sqlplus中输入 help indexsqlplus会将所有 命令列出来,如果需要查看某个命令的具体语法,如 connect,可以在sqlplus窗口中输入help connect。如下图所示 :

     

  • 相关阅读:
    【Java编程思想】13.字符串
    【Java编程思想】12.通过异常处理错误
    【Java编程思想】10.内部类
    【Java编程思想】11.持有对象
    【Java编程思想】9.接口
    【Java编程思想】8.多态
    【Java编程思想】7.复用类
    【Java编程思想】6.访问权限控制
    【Java编程思想】4.控制执行流程
    Ribbon、Feign、Hystrix使用时的超时时间设置问题
  • 原文地址:https://www.cnblogs.com/hangwq/p/2314892.html
Copyright © 2011-2022 走看看