isql自动加载sql脚本

Posted 小立攻城狮

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了isql自动加载sql脚本相关的知识,希望对你有一定的参考价值。

有时为了刷库的方便,特别是在刷全量脚本时我们可以使用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文件中。

以上是关于isql自动加载sql脚本的主要内容,如果未能解决你的问题,请参考以下文章

在shell脚本中使用 isql 执行SQL语句 查询sybase数据库中满足条件的记录条数,怎么把查询结果赋给变量?

echo 用法:如何一个bat文件调用多个sql文本文件

Sybase IQ 12.7 isql命令疑问?

pb9,连oracle数据库,isql session执行sql就崩溃。

Sqlserver,如何利用命令行或者sql脚本导出可执行的sql脚本?

为啥这个 ISQL 命令不能通过 Perl 的 DBI 运行?