您的位置:首页 > 数据库

isql自动加载sql脚本

2015-02-26 21:41 357 查看
有时为了刷库的方便,特别是在刷全量脚本时我们可以使用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文件中。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息