使用DashDB(DB2)在复合SQL中执行DDL

时间:2015-06-16 18:49:30

标签: sql db2 dashdb

我需要使用其他SQL命令执行DDL命令(CREATE TABLE)。请参阅下面的代码段:

CREATE TABLE test AS
(
    SELECT duration AS NUM1
    FROM event 
    WHERE duration IS NOT NULL
) WITH NO DATA;

INSERT INTO test (   
    SELECT duration AS NUM1
    FROM  event 
    WHERE event_duration_tech IS NOT NULL   
);

我正在创建一个表,然后填充它。

如果我通过JDBC发送此代码,则由于语句终止符(;)错误而无效。

如果我用BEGINEND包装它来创建一个复合SQL块,它就不起作用,因为DB2不允许在复合SQL块上使用DDL命令。

问题是,我需要一次执行两个命令。有什么想法吗?

1 个答案:

答案 0 :(得分:3)

您需要使用动态SQL来执行一些DDL语句:

EXECUTE IMMEDIATE 'CREATE TABLE test AS (SELECT...'