首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > oracle >

大横表插纵表怎么处理,等高手

2012-08-15 
大横表插纵表怎么办,等高手table1:产品id产品颜色产品型号是否智能1111redt1是1112bluet2否1113greent3是t

大横表插纵表怎么办,等高手

table1:
产品id产品颜色产品型号是否智能
1111redt1是
1112bluet2否
1113greent3是


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语句
*/

热点排行