这是问题所在。
我从表中读取年份数字并将其插入另一个表格中(现在是静态但在最终临时表中)
然后我查看这些数字并用它们创建表格。
BEGIN
INSERT INTO temp_year
( year_column )
(
select extract(year from datum) from datetest
);
FOR counter_id IN ( SELECT * FROM temp_year )
LOOP
EXECUTE IMMEDIATE 'Create table YEAR_' || counter_id || ' (year int, name char(50))'
END LOOP;
END;
/
Temp_year有一个列year_column(int)(填充像2012) datatest有一个日期列,其值为10.02.2012
结果应该是名为YEAR_2012的表,其中列为year int,name为char(50)
然而这不起作用。即使在temp_year表中存在多年,我也会在执行立即部分退出。
任何想法?
提前致谢。
THeVagabond
答案 0 :(得分:1)
试试这个:
EXECUTE IMMEDIATE 'Create table YEAR_' || counter_id.year_column || ' (year integer, name varchar2(50))';
(最后不要错过分号)