您的位置:首页 > 其它

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

2010-02-28 09:59 232 查看
假设:

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.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: