我有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