2009-07-09 45 views
1

我有一個oracle腳本,我試圖將其轉換爲有效的db2語法。在這個sql文件中,我對使用'@'語法傳入參數的其他sql文件進行了各種調用。db2 sql腳本文件

例如

任何人都可以幫助我與有效的db2等效語句?在db2中是否有等價的運行命令?是否有可能將參數傳遞給db2中的sql腳本?

感謝,

smauel

回答

6

你之後的東西是DB2 Command Line Processor (CLP).

如果你想執行一個腳本,你將執行在CLP:

db2 -vtf script1 

- f告訴CLP運行給定文件的命令輸入。

這是full list of options

不幸的是,db2不支持將參數傳遞給腳本。您必須將db2 -vtf命令與其他腳本命令(如sed)結合起來才能爲您生成腳本,如this example

1

傳遞參數有一個簡單的方法,對我們來說工作正常(它可能不適用於(複雜)多行SQL語句)。

通過在每行開始處添加'db2'將您的sql腳本轉換爲shell腳本。您可以在腳本中使用shell中的標準變量替換語法。

所以不是

insert ... 
update ... 

,你將有

db2 insert ... 
db2 update ... 
0

1)放置filename.sql文件SQLLIB/BIN

2)運行DB2CMD

3)執行此操作以連接到所需的db

db2 connect to *dbname* user *userid* using *password* 

4)EXCUTE此命令

db2 -vtf *filename.sql* 

這應該由一個執行文件之一的SQL語句。 sql語句必須以分號結尾