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));
”
这个是在存储过程里面执行的。
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))';