shell 与informix数据库的交互

阅读更多
1.dbaccess dbname zgs.sql  //在dbname数据库中执行zgs.sql脚本

2.dbaccess dbname <   load from zgs.unl delimiter '|' insert into zgs_table; //装入
   unload from zgs.unl delimiter '|' select * from zgs_table; //导出

3.dbload [ -d dbname] [-c cfilename] [-l logfile] [-e errnum] [-n num] [-i num] [-s]          [-p] [-r] [-k] [-X]
//把zgs.unl文件数据导入dbname数据库的zgs_table表的10个字段,每25000条提交一次,如某行无法导入则会产生日志到filelog文件
  例:dbload -d dbname -c loadfile -l filelog -n 25000
      loadfile配置:
      file zgs.unl delimiter '|' 10;
      insert into zgs_table;

4.dbschema -d dbnaem -t  all zgs.sql   //所有的表结构

5.dbschema -d dbname -f all zgs.sql//所有的存储过程

6.dbschema -d dbname zgs.sql//所有对象(包含表,存储过程,触发器。。。)

7.dbschema -d dbname -t zgs_table zgs.sql//zgs_table表的结构

8.dbschema -d dbname -f zgs_proc >>zgs.sql//存储过程定义

9.dbschema -d dbname  -ss zgs.sql//更多的表的信息

10.dbschema -d dbname -p all zgs.sql //用户或角色的授权信息
   dbschema -d dbname -r all zgs.sql//用户或角色的授权信息
   dbscheam -d dbname -s all zgs.sql//数据库中的同义词


11.informix demo3:
ifxSqlfun(){
sql=$1;
presql='SET LOCK MODE TO WAIT 10;output to pipe "cat" without headings' ;
sql=$presql$sql;
echo "$sql"|dbaccess $ifxdbname 2 >/dev/null;
}

使用方法:
sys_no_list=`ifxSqlfun "select sys_no from systeminfo"`
sys_no_str=`echo ${sys_no_list} |sed 's/ /,/g'`


12.informix demo4:
ifxISqlfun(){
sql=$1;
echo "$sql"|dbaccess $ifxdbname 2 >/dev/null;
}

使用:
ifxSqlfun "update sys_info set sys_name='zgs' where sys_no='00'"
sys_name=`ifxSqlfun "select sys_name from sys_info"




你可能感兴趣的:(shell)