我有一个 Oracle 脚本,现在想将其转换为有效的 DB2 语法。在这个 SQL 文件中,我有多个调用其他 SQL 文件的语句,使用 '@' 语法传递参数。
例如:
@script1 param1
@script2 param2
有没有人能帮我提供有效的db2等效语句?在db2中有等效的运行命令吗?是否可以在db2中向sql脚本传递参数?
谢谢,
smauel
你需要的是DB2命令行处理程序(CLP)。
如果你想要执行一个脚本,你可以在CLP中执行:
db2 -vtf script1
-f参数告诉CLP从给定文件中运行命令输入。
这里是完整的选项列表。
不幸的是,db2不支持将参数传递给脚本。您必须将db2 -vtf命令与其他脚本命令(如sed)结合使用,以为您生成脚本,例如此示例。
1) 将filename.sql文件放置于SQLLIB/BIN目录下
2) 运行db2cmd
3) 执行以下命令连接到所需的数据库
db2 connect to *dbname* user *userid* using *password*
4) 执行这个命令
db2 -vtf *filename.sql*
这将逐一执行文件中的SQL语句。SQL语句必须以分号结尾。
有一种更简单的方法可以传递参数,对我们来说很有效(但可能无法处理复杂的多行SQL语句)。
通过在每行开头添加“db2”,将您的SQL脚本转换为shell脚本。然后,您可以在脚本中使用Shell中的标准变量替换语法。
因此,不是
insert ...
update ...
你将拥有
db2 insert ...
db2 update ...