[18c] Requête dynamique avec un count(*)
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 :
Code:
1 2
| SELECT COUNT(*) FROM ma_table
WHERE (champ1, champ2) IN ( ('val1_1','val1_2') , ('val2_1','val2_2') , ('val3_1','val3_2') ); |
Et je veux maintenant récupérer la valeur du COUNT(*).
Je passe donc par du SQL dynamique :
Code:
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