laul, bien joué, j'ai pas eu le courage de le faire d'ailleurs
et sinon la methode recursive made in db2, je m'en servais pour rétablir l'intégrité des tables apres une desactivation d'intégritée
car ça mettais toutes les tables dépendantes par contraintes en mode "check pending"
Code :
- SET INTEGRITY FOR UNE_TABLE OFF@
- BLABLABLA
- COMMIT@
- create procedure maj_integrite_dep_PCOSOC ( )
- integrite_proc: begin
- declare listeTable VARCHAR(5000);
- declare req VARCHAR(5000);
- set listeTable = '';
- for table_row as
- cur cursor with hold for
- WITH n(id) AS
- (
- SELECT reftabname
- FROM syscat.references
- WHERE reftabname = 'UNE_TABLE'
- UNION ALL
- SELECT nplus1.tabname
- FROM syscat.references as nplus1, n
- WHERE n.id = nplus1.reftabname
- )
- SELECT distinct id FROM n where id !='UNE_TABLE'
- do
- set listeTable = listeTable || table_row.id || ',';
- end for;
- set req = 'SET INTEGRITY FOR UNE_TABLE IMMEDIATE CHECKED FORCE GENERATED';
- prepare s0 from req;
- execute s0;
- if (length(listeTable) > 0) then
- set listeTable = left(listeTable, length(listeTable)-1);
- set req = 'SET INTEGRITY FOR ' || listeTable || ' IMMEDIATE CHECKED';
- prepare s1 from req;
- execute s1;
- end if;
- commit;
- end integrite_proc@
|
et encore j'ai pas poussé jusqu'a metre la table en question en parametre ...
Message édité par basketor63 le 28-03-2008 à 17:21:39