请问有没什么办法把这一条值根据后面三列

得到多条数据

我是要把得到的数据插入到另一个表,根据每个列分别写一个语句可以,不过列有十几个,要写十几条,想看看能否放一起实现,网上查的都是根据某列的值变为多行,不知这种情况是否能实现????
sql
------解决方案--------------------
CREATE OR REPLACE PROCEDURE gettaskdone AS
v_sql VARCHAR2(2000);
BEGIN
v_sql := 'INSERT INTO t3 ';
FOR i IN (SELECT ywlb, xmlx, colname FROM t1 WHERE ywlb = '001') LOOP
v_sql := v_sql
------解决方案--------------------
'SELECT lsh, grbjh, djrq,'
------解决方案--------------------
i.ywlb
------解决方案--------------------
','
------解决方案--------------------
i.xmlx
------解决方案--------------------
','
------解决方案--------------------
i.colname
------解决方案--------------------
' FROM t2 WHERE '
------解决方案--------------------
i.colname
------解决方案--------------------
' IS NOT NULL UNION ALL';
END LOOP;
v_sql := substr(v_sql, 1, length(v_sql) - 9);
dbms_output.put_line(v_sql);
EXECUTE IMMEDIATE v_sql;
END gettaskdone;