Création de curseur dynamique
Je voudrais savoir s’il est possible de créer un curseur dynamique
J’ai réussi à créer la requête dynamique, mais j’ai une erreur quand je tente d’appeler mon curseur,j’ai diffèrent message d’erreur :weird:.
Code:
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
|
DECLARE
---
l_code_pays VARCHAR2(30);
l_type_pers VARCHAR2(30);
l_nif VARCHAR2(30);
-- teste REF CURSOR;
var_cursor VARCHAR2(4000);
BEGIN
--
l_code_pays := 'FR';
l_nif := '447 737 503';
l_type_pers := 'PMO';
--
var_cursor := 'SELECT format
FROM nif_validation nv,
nif_format nf
WHERE nv.code_pays = '''||l_code_pays||'''
AND nv.code_pays = nf.code_pays';
--
IF l_type_pers IS NOT NULL THEN
--
var_cursor:= var_cursor ||' AND nv.type_pers = '''||l_type_pers||'''';
--
END IF;
--
IF l_nif IS NOT NULL THEN
--
var_cursor:= var_cursor ||' AND REGEXP_LIKE ('''||l_nif||''', nf.reg_expres)';
--
END IF;
--
-- DBMS_OUTPUT.put_line ('var_cursor '|| var_cursor);
-- EXECUTE IMMEDIATE var_cursor INTO teste;
--
FOR I IN 1.. var_cursor LOOP
--
BMS_OUTPUT.put_line ('HELLO' );
--
END LOOP;
--
END; |
Pouvez-vous m’aider a résoudre ce problème?
Merci :D