2009-07-09 79 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语句必须以分号结尾