4

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

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 命令。

问题是,我需要一次性执行这两个命令。有任何想法吗?

4

1 回答 1

3

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

EXECUTE IMMEDIATE 'CREATE TABLE test AS (SELECT...'
于 2015-06-16T18:57:19.740 回答