0

使用 IBM DB2 我想创建一个过程,以防表不存在转到文件并从写入该文件的创建和插入语句开始。我不能将所有语句都放在一个过程中,因为它们太多了

到目前为止我的半伪代码是

 CREATE PROCEDURE KLEMENTEST.create_table 
()
LANGUAGE SQL
begin atomic

 if (not exists(select 'A' from syscat.tables where tabschema = 'TESTSCHEMA' and tabname='TESTTABLE')) then

 --- run queries from file located in "c:\path\to\file.txt"

 end if
end ;

有什么建议么 ??

谢谢你

4

1 回答 1

1

有几种选择:

1) 在 Java 或 C 中创建一个外部存储过程,它将执行您想要的命令。例如

db2 -tf 文件.sql

请记住使用概要文件 (.db2profile) 执行 DB2。在测试该表不存在后,您将调用此存储过程。

2)创建存储过程,并读取包含ddl的文件内容,然后根据内容,创建动态SQL。您可以通过 UTL_FILE 模块读取文件。但是,此模块在 Express-C 版本中不可用。http://publib.boulder.ibm.com/infocenter/db2luw/v10r1/topic/com.ibm.db2.luw.apdv.sqlpl.doc/doc/r0053689.html

这种方法的一般问题是要在文件系统中“执行”的文件的位置,并且存储过程变得依赖于平台。

于 2013-07-18T15:34:24.267 回答