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 testdb@testserver 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 testdb@testserver

   按菜单操作执行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.

原文地址:https://www.cnblogs.com/equation/p/5572968.html