使用shell脚本连接DB2数据库的问题

简单介绍下实验环境,两台机器,分别是64位AIX和32位Linux,分别装着64位DB2V9.5FP1和32位DB2V9.1FP8。两边都各有一个db2inst1实例,实例下各建有一个TESTDB,数据库中各有一个表T1,只有一列c1,int类型。先在AIX上写ksh脚本 #!/usr/bin/ksh su - db2inst1 -c "db2 connect to testdb" s...显示全部
简单介绍下实验环境,两台机器,分别是64位AIX和32位Linux,分别装着64位DB2V9.5FP1和32位DB2V9.1FP8。两边都各有一个db2inst1实例,实例下各建有一个TESTDB,数据库中各有一个表T1,只有一列c1,int类型。
先在AIX上写ksh脚本
#!/usr/bin/ksh
su - db2inst1 -c "db2 connect to testdb"
su - db2inst1 -c "db2 select c1 from t1"
运行该脚本,可以成功打印出select结果

再到Linux上写bash脚本
 
#!/bin/bash
su - db2inst1 -c "db2 connect to TESTDB"
su - db2inst1 -c "db2 select c1 from t1"
运行该脚本,却报连接不存在

[root@test01 /]# ./test.sh
   Database Connection Information
Database server        = DB2/LINUX 9.1.8
SQL authorization ID   = DB2INST1
Local database alias   = TESTDB
SQL1024N  A database connection does not exist.  SQLSTATE=08003

利用公司的资源,连到64位AIX版本的DB2V8.1上和64位Linux版本的DB2V9.1上看过了,但凡是ksh都是OK的,但凡是bash都是报连接不存在。个人认为比较大的可能是ksh和bash的语法区别。不知道各位有谁在Linux上写过连接DB2的脚本,如果要在Linux上使用bash写脚本连接数据库,shell该如何写呢?收起
参与14

查看其它 12 个回答bright2007的回答

bright2007bright2007系统运维工程师新大陆软件工程
#!/bin/bash
#set -x

. /home/db2user/sqllib/db2profile

db2 connect to db user user using passwd

我是这样连接数据库的,应该是环境变量的问题
互联网服务 · 2010-11-04
浏览3132

回答者

bright2007
系统运维工程师新大陆软件工程

bright2007 最近回答过的问题

回答状态

  • 发布时间:2010-11-04
  • 关注会员:1 人
  • 回答浏览:3132
  • X社区推广