Bonjour à tous,
Dans un script je dois construire une requête à partir de la lecture d'un fichier CSV. (pas important pour le problème).
Au final, j'obtiens une requête toute simple du genre :
Et je veux maintenant récupérer la valeur du COUNT(*).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 SELECT COUNT(*) FROM ma_table WHERE (champ1, champ2) IN ( ('val1_1','val1_2') , ('val2_1','val2_2') , ('val3_1','val3_2') );
Je passe donc par du SQL dynamique :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 DECLARE v_req_vet VARCHAR2(1024); v_result VARCHAR2(5); BEGIN v_req_vet := 'SELECT COUNT(*) FROM ma_table WHERE (champ1, champ2) IN ( ('val1_1','val1_2') , ('val2_1','val2_2') , ('val3_1','val3_2') ) INTO :1'; EXECUTE IMMEDIATE v_req_vet INTO v_result; DBMS_OUTPUT.PUT_LINE('Resultat : ' || v_result); END;
Et donc bien sûr ça ne marche pas.
Je suis même embêté par les quotes qui entourent les valeurs. ça marche en doublant les quotes ?
Si vous avez une solution, ce serait super.
Merci
Michel
Partager