isql自动加载sql脚本

来源:互联网 发布:淘宝刚买完就降价了 编辑:程序博客网 时间:2024/05/29 02:09
有时为了刷库的方便,特别是在刷全量脚本时我们可以使用isql来批量加载执行sql脚本文件。
要使用isql的前提是你的机器上已经安装了sybase。

1、windows下连接sybase数据库进行刷库操作
       假设现在有如下几个sql脚本:
        001.表结构创建.SQL
002.初始化数据.SQL
003.初始化数据.SQL

        先提供一个sybase服务配置文件12.5.interfaces.ini,文件内容如下:
[LINUXI60M] 
master=NLWNSCK,10.20.31.53,5000 
query=NLWNSCK,10.20.31.53,5000 
[LINUXI60M_BS] 
master=NLWNSCK,10.20.31.53,5001 
query=NLWNSCK,10.20.31.53,5001 
[LINUXI60M_XP] 
master=NLWNSCK,10.20.31.53,5002 
query=NLWNSCK,10.20.31.53,5002
 注:我这里是12.5的数据库,如果是15.7的话服务配置是有区别的;文件名随意,保证文件内容正确即可。

提供一个刷库的引导脚本,用于指导SQL文件加载顺序,我这里叫"12.5.引导脚本.bat",这是一个在windows环境下的可执行文件;
        文件内容如下:
   rd /s/q log
   mkdir log
   isql -UXX -PXX -I12.5.interfaces.ini -SLINUXI60M -Jcp936 <001.表结构创建.SQL>;log\001.表结构创建.out
   isql -UXX -PXX -I12.5.interfaces.ini -SLINUXI60M -Jcp936 <002.初始化数据.SQL>;log\002.初始化数据.out
   isql -UXX -PXX -I12.5.interfaces.ini -SLINUXI60M -Jcp936 <003.初始化数据.SQL>;log\003.初始化数据.out
           参数说明:U后面是用户名、P后面是密码、I后面是服务配置文件,由于这里是在同级目录就没指定绝对路径了、
   S后面是服务名,就是服务配置文件里面[]括号括起来部分、
   J后面是字符集(sybase服务是utf8字符集,为了确保刷进去的中文不是乱码就用cp936这个字符集)。
          
   脚本第一行是删除log目录、第二行是创建log目录;用<>将SQL文件括起来,.out文件是输出的SQL脚本执行时记录的日志,
   脚本刷完后检查log目录下的日志文件查看脚本是否执行成功,刷库过程中有错误的话都会记录在out文件中。

0 0
原创粉丝点击