ORA-00933 sur un contenu de variable utilisé comme curseur
Bonjour,
lorsque j'exécute le code suivant, j'ai l'erreur
Citation:
Error at line 3
ORA-00933: la commande SQL ne se termine pas correctement
ORA-06512: à ligne 28
Or, si l'enlève le code lg 30..36, ça fonctionne.
Si je prends le résultat affiché (le select...) ça fonctionne
Si je mets en dur dans la variable v_select un des résultats obtenus, ça fonctionne.
Je suis à court d'idées.
Une aide ?
Merci
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
| declare
TYPE cv_typ IS REF CURSOR;
cv cv_typ;
cv_record varchar2(10000);
v_select varchar2(10000);
CURSOR c_lst_tab_usitee IS
SELECT table_name
FROM sys.dba_tab_modifications
WHERE inserts+deletes+updates > 0 AND table_owner = 'POWERCARD';
cursor c_lst_colPAN_tab(v_tab_usitee varchar2) is
select column_name
FROM DBA_TAB_COLUMNS
WHERE TABLE_NAME = v_tab_usitee AND data_type='VARCHAR2' AND data_length>15;
BEGIN
-- DBMS_OUTPUT.ENABLE( 1000000 ) ;
for r_lst_tab_usitee in c_lst_tab_usitee
loop
DBMS_OUTPUT.PUT_LINE ('*' || r_lst_tab_usitee.table_name);
v_select := 'select ''a'' ';
for r_lst_colPAN_tab in c_lst_colPAN_tab(r_lst_tab_usitee.table_name)
loop
v_select := v_select || ' || ''@'' || ' || r_lst_colPAN_tab.column_name;
--DBMS_OUTPUT.PUT_LINE ('-----' || r_lst_colPAN_tab.column_name);
end loop;
v_select := v_select || ' from ' || r_lst_tab_usitee.table_name;
DBMS_OUTPUT.PUT_LINE (v_select);
OPEN cv FOR v_select ; -- :cry:c'est ici que le problème se pose
loop
fetch cv into cv_record;
exit when cv%NOTFOUND;
DBMS_OUTPUT.PUT_LINE (cv_record);
end loop;
close cv;
end loop;
end; |