大横表插纵表怎么办,等高手
table1:
产品id	产品颜色	产品型号	是否智能
1111	red	t1	是
1112	blue	t2	否
1113	green	t3	是
table2:
产品id	参数名称	参数值	
1111	产品颜色	red	
1112	产品颜色	blue	
1113	产品颜色	green	
1111	产品型号	t1	
1112	产品型号	t2	
1113	产品型号	t3	
1111	是否智能	是	
1112	是否智能	否	
1113	是否智能	是	
将横表table1插入纵表table2,效果如table2,有人给我脚本如下:
select 产品id,'产品颜色' 参数名称,产品颜色 参数值 from table
union all   
select 产品id,'产品型号',产品型号 参数值 from table
union all   
select 产品id,'是否智能',是否智能 参数值 from table
问题似乎解决,但难过的是我的table1有400多列,不可能union all 400多个select吧。。。很急,哪位大侠能给个解决方案,在线等哦。。。。。。
------解决方案--------------------
部门内部调整,没心思写代码了,写个思路,试试看行不行。
/*
思路:
从系统字段表中获取字段名称列表
 SELECT * FROM USER_TAB_COLUMNS
 WHERE TABLE_NAME = 'TABLENAME'
动态生成SQL语句
 strCursorSql varchar2(32700) := '';
 --游标相关
 TYPE myref IS REF CURSOR;
 cur      myref;
 strCursorSql := 'select * from TABLENAME';
 OPEN cur FOR strCursorSql;
 LOOP
 Fetch cur into secondFieldValue;
   Exit when cur%notfound;
 dbms_output.put_line('INSERT INTO TABLE2 SELECT...' );
 END LOOP; 
循环插入相应数据
 执行生成的INSERT语句
*/