我需要創建一個像YEAR_名稱表的變量值創建表(在這裏不用變量值)時在一個循環中,在DB2
我有一年的數字表(2010,2012,2014)。我想拿這些並創建表YEAR_2010,YEAR_2012和YEAR_2014。
這需要在一個循環內完成。
我試圖做這樣的:
CREATE TABLE TEMP_YEAR
( YEAR_COLUMN integer
);
INSERT INTO temp_year
(year_column)
(
select extract(year from datum) from datetest
);
BEGIN
FOR vl AS
c1 cursor for
SELECT year_column FROM temp_year
DO
EXEC SQL execute immediate 'create table YEAR_' || year_column || ' (year integer, name varchar2(50));
END FOR;
END;
/
drop table temp_year;
的第一次創建工作,以便爲插入。剩下的就搞亂了。
它始於此錯誤消息(德國翻譯):
EXEC SQL execute immediate 'create table YEAR_' || year_column || ' (year integer, name varchar2(50))
DB21034E SQL statement is wrong.
SQL0104N On " EXEC" follows the invalid Token "SQL". Allowed tokens could be: ":". LINE NUMBER=7. SQLSTATE=42601
我們的目標是與年份數字的幫助下創建的表。
任何想法?
在此先感謝。
對我來說,這聽起來不像一個好的設計,每年都有獨立的桌子。一年中只有一張桌子有場地會更好。然後使用SQL語句來收集所需的信息。 – Linger
我需要那些年表。他們需要像這樣退後一步。這些都是巨大的桌子。 – Thevagabond
[DB2創建表X時X是變量?]的可能的副本(http://stackoverflow.com/questions/8696351/db2-create-table-x-when-x-is-a-variable) – 2014-02-05 14:15:40