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 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64
|
DECLARE
--//--RECORD
TYPE T_LQ_REC IS RECORD (
LQ_VLAB_SEQ VARIANCE_LABORATOIRE.VLAB_SEQ%TYPE,
LQ_ESS_ID ESSAI.ESS_ID%TYPE,
LQ_PARA_ID PARAMETRES.PARA_ID%TYPE,
LQ_MATR_ID MATRICE.MATR_ID%TYPE,
LQ_LOT_ID LOT.LOT_ID%TYPE,
LQ_METH_ID METHODES.METH_ID%TYPE,
LQ_POINT_ID RESULTATS.POINT_ID%TYPE,
LQ_VLAB_MOYENNE VARIANCE_LABORATOIRE.VLAB_MOYENNE%TYPE,
LQ_VLAB_SRESIDUELLE VARIANCE_LABORATOIRE.VLAB_SRESIDUELLE%TYPE,
LQ_VLAB_SINTERFLACONS VARIANCE_LABORATOIRE.VLAB_SINTERFLACONS%TYPE,
LQ_VLAB_SELECTION VARIANCE_LABORATOIRE.VLAB_SELECTION%TYPE,
LQ_VLAB_LQ VARIANCE_LABORATOIRE.VLAB_LQ%TYPE,
LQ_VLAB_MINF VARIANCE_LABORATOIRE.VLAB_LQ_MINF%TYPE,
LQ_VLAB_MSUP VARIANCE_LABORATOIRE.VLAB_LQ_MSUP%TYPE);
T_LE_LQ T_LQ_REC;
TYPE T_LQ_TAB IS TABLE OF T_LQ_REC;
T_LES_LQ T_LQ_TAB:=T_LQ_TAB();
BEGIN
--J'alimente mon tableau de records à ce niveau, pas de pb, mon tableau est bien rempli
T_LES_LQ(cpt):=T_LE_LQ;
--Après plusieurs traitements, j'ai à ce niveau un tableau complet de records que je voudrai insérer le plus efficacement possible dans une table.
--Pour cela, voici ce que je fais
chInsert:='INSERT INTO VARIANCE_LABORATOIRE(VLAB_SEQ, ';
chInsert:=chInsert||'ESS_ID, ';
chInsert:=chInsert||'PARA_ID, ';
chInsert:=chInsert||'MATR_ID, ';
chInsert:=chInsert||'LOT_ID, ';
chInsert:=chInsert||'METH_ID, ';
chInsert:=chInsert||'POINT_ID, ';
chInsert:=chInsert||'VLAB_MOYENNE, ';
chInsert:=chInsert||'VLAB_SRESIDUELLE, ';
chInsert:=chInsert||'VLAB_SINTERFLACONS, ';
chInsert:=chInsert||'VLAB_SELECTION, ';
chInsert:=chInsert||'VLAB_LQ,VLAB_LQ_MINF,VLAB_LQ_MSUP) ';
chInsert:=chInsert||'VALUES (:1, :2, :3, :4, :5, :6, :7, :8, :9, :10, :11, :12, :13, :14)';
FORALL i IN T_LES_LQ.FIRST..T_LES_LQ.LAST
EXECUTE IMMEDIATE chInsert USING T_LES_LQ(i).LQ_VLAB_SEQ,
T_LES_LQ(i).LQ_ESS_ID,
T_LES_LQ(i).LQ_PARA_ID,
T_LES_LQ(i).LQ_MATR_ID,
T_LES_LQ(i).LQ_LOT_ID,
T_LES_LQ(i).LQ_METH_ID,
T_LES_LQ(i).LQ_POINT_ID,
T_LES_LQ(i).LQ_VLAB_MOYENNE,
T_LES_LQ(i).LQ_VLAB_SRESIDUELLE,
T_LES_LQ(i).LQ_VLAB_SINTERFLACONS,
T_LES_LQ(i).LQ_VLAB_SELECTION,
T_LES_LQ(i).LQ_VLAB_LQ,
T_LES_LQ(i).LQ_VLAB_MINF,
T_LES_LQ(i).LQ_VLAB_MSUP;
END; |
Partager