我有2个DB2 SQL脚本需要运行。我试图把它们放在bash脚本中并执行它们。如何在bash脚本中串行运行sql脚本?
这里是script.sh:
#!/bin/bash
db2 -tf firstscript.sql;
db2 -tf secondscript.sql;
当我运行它,我得到以下错误:
DB21034E The command was processed as an SQL statement because it was not a valid Command Line Processor command. During SQL processing it returned: SQL1024N A database connection does not exist. SQLSTATE=08003
但我确信,数据库连接已经存在。
我认为sql脚本中的命令不是按顺序执行的。 因为当我单独运行每个命令时,没有错误。 而且,当我运行内联命令即db2 -tf firstscript.sql;db2 -tf firstscript.sql
时,即使这样代码也能正常工作。
我认为它可能与#!/bin/bash
有关,所以我将它从script.sh文件中删除,然后执行它。即使如此,它也会返回相同的错误。
什么是可能的问题及其解决方案?
如果您运行上述脚本,它将按顺序执行。如果直接输入时它们是作品,请尝试下一个:source myscript.sh'。如果它能起作用,那么问题可能在于某些bash变量,哪些不会被导出。如果不行,不知道。你运行bash作为你的命令行shell吗?什么打印'ps -p $$'命令? – jm666 2014-09-03 06:56:15