1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43
| CREATE OR REPLACE PROCEDURE CHOPE.PR1 (VNUM_DEM IN NUMBER )
IS
TYPE C_XIMP_STOCK IS REF CURSOR;
GET_STOCK C_XIMP_STOCK;
TYPE TABLE_XIMP_STOCK1 IS RECORD
( NUM_DEM NUMBER,
DISTRIBUTEUR VARCHAR2(255 BYTE),
ENSEIGNE VARCHAR2(50 BYTE),
);
TYPE TABLE_XIMP_STOCK IS TABLE OF TABLE_XIMP_STOCK1 INDEX BY BINARY_INTEGER ;
TAB_XIMP_STOCK TABLE_XIMP_STOCK;
V_SQL VARCHAR2(4000);
V_NUM_DEM NUMBER;
BEGIN
delete from chope.Z_TABLE1 where NUM_DEM=VNUM_DEM;commit;
commit;
select F_GET_REQUETE(VNUM_DEM ) into V_SQL from dual;
OPEN GET_STOCK FOR V_SQL;
LOOP
TAB_XIMP_STOCK.DELETE;
FETCH GET_STOCK BULK COLLECT INTO TAB_XIMP_STOCK LIMIT 10000;
FORALL I IN 1 .. NVL(TAB_XIMP_STOCK.COUNT,-1)
INSERT INTO
(
SELECT * FROM CHOPE.z_TABLE1 )
VALUES TAB_XIMP_STOCK(I);
COMMIT;
EXIT WHEN GET_STOCK%NOTFOUND;
EXIT WHEN TAB_XIMP_STOCK.COUNT =0;
END LOOP;
CLOSE GET_STOCK;
END;
/ |
Partager