我需要使用其他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发送此代码,则由于语句终止符(;
)错误而无效。
如果我用BEGIN
和END
包装它来创建一个复合SQL块,它就不起作用,因为DB2不允许在复合SQL块上使用DDL命令。
问题是,我需要一次执行两个命令。有什么想法吗?
答案 0 :(得分:3)
您需要使用动态SQL来执行一些DDL语句:
EXECUTE IMMEDIATE 'CREATE TABLE test AS (SELECT...'