使用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"
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

13同行回答

synclijunsynclijun软件开发工程师topnet
明显没有取得父shell的环境变量显示全部
明显没有取得父shell的环境变量收起
互联网服务 · 2010-11-04
浏览947
fsycgfsycg数据库管理员神州数码
要自己 该下目录显示全部
要自己 该下目录收起
电信设备制造商 · 2010-11-04
浏览1060
fsycgfsycg数据库管理员神州数码
你是没有把db2 的一个环境变量引用进来,在shell 里面#!/usr/bin/ksh. /export/home/tbm/sqllib/db2profilesu - db2inst1 -c "db2 connect to testdb"su - db2inst1 -c "db2 select c1 from t1"显示全部
你是没有把db2 的一个环境变量引用进来,在shell 里面
#!/usr/bin/ksh
. /export/home/tbm/sqllib/db2profile
su - db2inst1 -c "db2 connect to testdb"
su - db2inst1 -c "db2 select c1 from t1"收起
电信设备制造商 · 2010-11-04
浏览1002

提问者

捣蛋鬼
擅长领域: 数据库

相关问题

相关资料

相关文章

问题状态

  • 发布时间:2010-11-04
  • 关注会员:1 人
  • 问题浏览:21460
  • 最近回答:2010-12-20
  • X社区推广