informix dbaccess 常用执行方式及常见技巧

Posted 薛定谔

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了informix dbaccess 常用执行方式及常见技巧相关的知识,希望对你有一定的参考价值。

假设:

A.数据库servername: testserver

B.数据库名:testdb

C.SQL脚本文件:

   sqlfile.sql

   create table test_table(c1 integer);

   insert into test_table(c1) values(12);

   update test_table set c1=0;

   delete test_table where 1=1;

   drop table test_table;

   

   sqlfile2.sql

   create table test_table(c1 integer);

   insert into test_table(c2) values(12);

   insert into test_table(c1) values(12);

   update test_table set c1=0;

   delete test_table where 1=1;

   drop table test_table;

 

 


 

 

一.执行SQL脚本文件方式

 

1.调用dbaccess执行SQL脚本文件

  A.简单执行SQL文件

     dbaccess testdb sqlfile.sql 或者  dbaccess [email protected] sqlfile.sql

     Database selected.
     Table created.
     1 row(s) inserted.
     1 row(s) updated.
     1 row(s) deleted.
     Table dropped.
     Database closed.

 

  B.执行输出打印执行语句及执行结果

     dbaccess -e testdb sqlfile.sql

     create table test_table(c1 integer);
       Table created.
     insert into test_table(c1) values(12);
       1 row(s) inserted.
     update test_table set c1=0;
       1 row(s) updated.

     delete test_table where 1=1;
       1 row(s) deleted.

     drop table test_table;
       Table dropped.
     Database closed.

  C.将执行结果重定向到文件(shell: bash)

     dbaccess -e testdb sqlfile.sql > output.log > 2&1

     cat output.log

     create table test_table(c1 integer);
       Table created.
     insert into test_table(c1) values(12);
       1 row(s) inserted.
     update test_table set c1=0;
       1 row(s) updated.

     delete test_table where 1=1;
       1 row(s) deleted.

     drop table test_table;
       Table dropped.
     Database closed.

 

二.交互模式执行语句

    dbaccess - -
    > database testdb;

        Database selected.

     > create table test_table(c1 integer);
        Table created.

     > insert into test_table(c1) values(12);
        1 row(s) inserted.
     > update test_table set c1=0;
        1 row(s) updated.

     > delete test_table where 1=1;
        1 row(s) deleted.

     > drop table test_table;
        Table dropped.

     >^D

 

三.菜单模式执行

    进入数据库

   dbaccess  选择数据库

   或者

    dbaccess testdb

    dbaccess [email protected]

   按菜单操作执行SQL语句,其中可以使用vi进行脚本文件的编辑

 

四.几个小技巧

  1.执行SQL脚本文件时,当出错时打印详细的错误信息

    dbaccess -e -m testdb sqlfile2.sql

   

 Database selected.
 
create table test_table(c1 integer);
   Table created

 
insert into test_table(c2) values(1212);
  217: Column (c2) not found in any table in the query (or SLV is undefined).
Error in line 2
Near character position 26
 
   insert into test_table(c1) values(12);
1 row(s) inserted.
      update test_table set c1=0;
1 row(s) updated.
         delete test_table where 1=1;
1 row(s) deleted.
            drop table test_table;
Table dropped.
Database closed.

 

  2.执行SQL脚本文件时,当出错时打印详细的错误信息并在出现第一个错误时,停止继续执行后续的语句

    dbaccess -e -m -a testdb sqlfile2.sql

    Database selected.
 
create table test_table(c1 integer);
Table created.
 
insert into test_table(c2) values(1212);
  217: Column (c2) not found in any table in the query (or SLV is undefined).
Error in line 2
Near character position 26
 
Database closed.

以上是关于informix dbaccess 常用执行方式及常见技巧的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Informix 中过滤 dbaccess 输出?

informix SQL时快时慢

怎么样mysql的数据同步到informix

dbaccess如何调用sql脚本

您如何识别 Solaris 上的 Informix 版本?

如何连接到旧版 Informix 数据库?