我现在有几段PL/SQL的代码,怎么能通过delphi实现多段语句同时执行?下面是我写的几段PL/SQL语句段,高手指教一下怎么可以一次性把这几个段的语句块连续执行。
--aab001 所在单位编号
declare 
V_A varchar2(50);
V_B VARCHAR2(50);
V_C VARCHAR2(50);
CURSOR YOUBIAO IS
    select id0000, dwid00 from sidb.tb_grjbxx;
    BEGIN
    OPEN YOUBIAO;
    LOOP
    FETCH YOUBIAO INTO V_A,V_B;
    Update SIDB.WSQ_JF2 set wsq_jf2.AAB001 =V_B  WHERE wsq_jf2.AAc001=V_A;
    EXIT WHEN YOUBIAO%NOTFOUND;
    END LOOP;
    CLOSE YOUBIAO; 
    END;
--aac003(姓名)
declare 
V_A varchar2(50);
V_B VARCHAR2(50);
V_C VARCHAR2(50);
CURSOR YOUBIAO IS
    SELECT id0000,xming0 FROM SIDB.Tb_grjbxx;
    BEGIN
    OPEN YOUBIAO;
    LOOP
    FETCH YOUBIAO INTO V_A,V_B;
    Update SIDB.WSQ_JF2 set wsq_jf2.AAc003 =V_B  WHERE sidb.wsq_jf2.AAC001=V_A;
    EXIT WHEN YOUBIAO%NOTFOUND;
    END LOOP;
    CLOSE YOUBIAO; 
    END;
--Aac004 性别
declare 
V_A varchar2(50);
V_B VARCHAR2(50);
V_C VARCHAR2(50);
CURSOR YOUBIAO IS
    SELECT id0000,xbie00 FROM SIDB.Tb_grjbxx;
    BEGIN
    OPEN YOUBIAO;
    LOOP
    FETCH YOUBIAO INTO V_A,V_B;
    Update SIDB.WSQ_JF2 set wsq_jf2.AAc004 =V_B  WHERE wsq_jf2.AAc001=V_A;
    EXIT WHEN YOUBIAO%NOTFOUND;
    END LOOP;
    CLOSE YOUBIAO; 
    END;--aac002 公民身份证号
declare 
V_A varchar2(50);
V_B VARCHAR2(50);
V_C VARCHAR2(50);
CURSOR YOUBIAO IS
    select id0000, sfzhao from sidb.tb_grjbxx;
    BEGIN
    OPEN YOUBIAO;
    LOOP
    FETCH YOUBIAO INTO V_A,V_B;
    Update SIDB.WSQ_JF2 set wsq_jf2.AAC002 =V_B  WHERE wsq_jf2.AAc001=V_A;
    EXIT WHEN YOUBIAO%NOTFOUND;
    END LOOP;
    CLOSE YOUBIAO; 
END;
  

解决方案 »

  1.   

    改为下面的代码试试吧
    declare 
    CURSOR YOUBIAO IS
        select id0000,dwid00,xming0,xbie00,sfzhao from sidb.tb_grjbxx;
        BEGIN
           for v_cur in youbiao loop
             Update SIDB.WSQ_JF2 set AAB001=v_cur.dwid00,AAc003=v_cur.xming00,AAc004=v_cur.xbie00,AAC002=v_cur.sfzhao  WHERE wsq_jf2.AAc001=v_cur.id0000;
           END LOOP;
    END;
    没有有测试可能有笔误