从bash脚本执行db2命令时是否出现错误?

1tuwyuhd  于 2022-11-07  发布在  DB2
关注(0)|答案(1)|浏览(199)

我是一个在unix环境下运行db2命令的新手,所以我一直试图从bash脚本连接到一个db2示例。但是我得到了错误,下面是我的脚本的样子:


# !/bin/bash

DB2="java com.ibm.db2.clp.db2"
$DB2 "connect to <db2 server here> user****using****"

我得到一个DSNC102I : The option "connect to <db2 server> user****using****" specified after the "db2" command is incorrect.
我不知道该怎么做。目前我可以使用$DB2 -tvf part3.sql从同一个bash脚本运行sql脚本,其中连接详细信息和sql查询都在part3.sql文件中。为什么我不能通过在bash脚本中编写sql命令本身来获得同样的结果呢?
PS:* 我希望这样做,因为我的bash脚本需要接受任何db2示例/模式,以将查询作为bash脚本的参数 *

hwamh0ep

hwamh0ep1#

看起来您使用的是USS下的CLP,并且它将connect语句解释为选项标志而不是命令。
将connect语句和要在运行时运行的语句放在一个文件中应该可以满足您的需要--这个脚本接受db2 server、username和password的参数,以便您可以将它们从part3.sql中删除:


# !/bin/bash

DB2="java com.ibm.db2.clp.db2"
echo "connect to $1 user $2 using $3;" > temp.sql
cat part3.sql >> temp.sql
$DB2 -tvf temp.sql
rm temp.sql

将connect语句放入一个临时文件中,然后复制part3.sql文件的内容,CLP运行该文件,最后删除临时文件。

相关问题