create or replace procedure DT_yourname is V_WORKSHEET_ID VARCHAR2(1000); V_Str varchar2(2000); v_strAll varchar2(2000); cursor D is select distinct col1 from tablename; CURSOR E(V_WORKSHEET_IDRef varchar2) IS SELECT col2 FROM tablename where col1=V_WORKSHEET_IDRef; begin OPEN D; FETCH D INTO V_WORKSHEET_ID; WHILE D%FOUND LOOP v_strAll:=''; OPEN E(V_WORKSHEET_ID); FETCH E INTO V_Str ; WHILE E%FOUND LOOP v_strAll:=v_strAll||V_Str; FETCH E INTO V_Str ; END LOOP; insert into temp (col1,col2) values (V_WORKSHEET_ID,v_strAll) ; FETCH D INTO V_WORKSHEET_ID ; END LOOP; end DT_yourname; 目的是将tablename中的col2在col1相同的情况下合并。不知道怎么搞
你最好显示关闭游标,另外你的过程应该可以执行啊,只要在一个 SQL 块中调有就可以了
CURSOR E(V_WORKSHEET_IDRef varchar2) IS SELECT col2 FROM tablename where col1=V_WORKSHEET_IDRef;这样写对吗?
V_WORKSHEET_ID VARCHAR2(1000);
V_Str varchar2(2000);
v_strAll varchar2(2000);
cursor D is
select distinct col1 from tablename;
CURSOR E(V_WORKSHEET_IDRef varchar2) IS
SELECT col2 FROM tablename where col1=V_WORKSHEET_IDRef;
begin
OPEN D;
FETCH D INTO V_WORKSHEET_ID;
WHILE D%FOUND LOOP
v_strAll:='';
OPEN E(V_WORKSHEET_ID);
FETCH E INTO V_Str ;
WHILE E%FOUND LOOP
v_strAll:=v_strAll||V_Str;
FETCH E INTO V_Str ;
END LOOP;
insert into temp (col1,col2) values (V_WORKSHEET_ID,v_strAll) ;
FETCH D INTO V_WORKSHEET_ID ;
END LOOP;
end DT_yourname;
目的是将tablename中的col2在col1相同的情况下合并。不知道怎么搞
SELECT col2 FROM tablename where col1=V_WORKSHEET_IDRef;这样写对吗?