Besoin d'aide pour une commande
Bonjour a tous,
Voici mon code:
1) Je recupere la liste des schemas que je veux parcourir par la suite (premier curseur) depuis la table SCHEMA_MAP. Chaque schema a une liste de REF_TITI correspondantes (je recupere les REF_TITI dans SCHEMA_MAP qui remplissent les criteres du deuxieme select depuis la table GG_PARAMETERS). Je declare un deuxieme curseur C_ITEMS pour la suite.
Code:
1 2 3 4 5 6 7 8
| DECLARE
CURSOR C_TARGET_SCHEMA IS
select TARGET_SCHEMA,REF_TITI from SCHEMA_MAP where CODE is NULL and REF_TITI in (select REF_TITI from GG_PARAMETERS where CONF is not NULL) order by TARGET_SCHEMA;
C_ITEMS sys_refcursor;
ITEMS_NUMBER NUMBER(5); |
2) Je parcours chaque schema
Code:
1 2 3 4 5 6 7 8
| BEGIN
dbms_output.enable(600000);
-- For each schema
FOR SCHEMA IN C_TARGET_SCHEMA LOOP
EXECUTE IMMEDIATE('ALTER SESSION SET CURRENT_SCHEMA=SESSION_' || SCHEMA.TARGET_SCHEMA); |
3) Pour chaque schema, je fais cette commande (je vais compter dans la table CHANGE de ce schema les elements qui m'interressent)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
OPEN C_ITEMS FOR 'select COUNT(*) from CHANGE where MODE=''ASC'' and (TRUNC(RECEPTION_DATE) > (CURRENT_DATE - 2) and TRUNC(RECEPTION_DATE) < (CURRENT_DATE - 1))';
FETCH C_ITEMS INTO ITEMS_NUMBER;
CLOSE C_ITEMS;
END LOOP;
END;
/
quit |
Ce que j'aimerais faire, c'est classer les resultats de ma commande 3) par REF_TITI, ie dire dans tel schema, j'ai compte tant de trucs pour la premiere REF_TITI, tant de trucs pour la deuxieme...
Je sais pas si c'est tres clair, demandez-moi plus de precisions si besoin.
Merci