在存储过程里给临时表加列
For cur_Review In( SELECT extractValue(value(t),'/item/@date') as d_date
From (select xmltype(a_date_xml) as recode from dual) x
,TABLE( xmlsequence (
extract(x.recode,
'/data/item'))
) t)
Loop
v_date:=cur_Review.d_date;
v_sql:='ALTER TABLE Temp_item_table ADD (col'||v_date||' varchar2(50));';
End loop;
execute immediate v_sql;--执行添加列语句
--想法:循环游标,每次都添加一个列,最后执行下语句。然后就报错了。我跟踪了下,v_sql是这样的
“
ALTER TABLE Temp_item_table ADD (col20120018 varchar2(50));
ALTER TABLE Temp_item_table ADD (col20120019 varchar2(50));
ALTER TABLE Temp_item_table ADD (col20120020 varchar2(50));
ALTER TABLE Temp_item_table ADD (col20120021 varchar2(50));
”
这个是在存储过程里面执行的。
------解决方案-------------------- v_sql:='ALTER TABLE Temp_item_table ADD (col'
------解决方案--------------------
v_date
------解决方案--------------------
' varchar2(50));';
--把最后面的;去掉,改成
v_sql:='ALTER TABLE Temp_item_table ADD (col'
------解决方案--------------------
v_date
------解决方案--------------------
' varchar2(50))';