Bonjour,
j'ai créé un script de purge mensuel qui est le suivant :
Lorsque je le lance, j'obtiens ça comme erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 CREATE OR REPLACE PROCEDURE PURGE IS cnt_transfert_actif PLS_INTEGER; mois_courant USER_TAB_PARTITIONS.partition_position%TYPE; CURSOR partition_cur (mois_courant USER_TAB_PARTITIONS.partition_position%TYPE) IS SELECT DISTINCT partition_name, partition_position FROM USER_TAB_PARTITIONS WHERE partition_position != mois_courant ORDER BY partition_position; BEGIN SELECT TO_NUMBER (TO_CHAR (SYSDATE, 'MM')) INTO mois_courant FROM DUAL; FOR partition_rec IN partition_cur (mois_courant) LOOP DBMS_OUTPUT.put_line ('La purge du mois de ' || partition_rec.partition_name || ' a commence'); EXECUTE IMMEDIATE 'ALTER TABLE INSTANCE_PAR_TRANSFERT TRUNCATE PARTITION ' || partition_rec.partition_name || ' REUSE STORAGE'; EXECUTE IMMEDIATE 'ALTER TABLE TACHE_ELEMENTAIRE TRUNCATE PARTITION ' || partition_rec.partition_name || ' REUSE STORAGE'; EXECUTE IMMEDIATE 'ALTER TABLE ETAT_PAR_TRANSFERT TRUNCATE PARTITION ' || partition_rec.partition_name || ' REUSE STORAGE'; EXECUTE IMMEDIATE 'ALTER TABLE TRANSFERT TRUNCATE PARTITION ' || partition_rec.partition_name || ' REUSE STORAGE'; DBMS_OUTPUT.put_line ('La purge du mois de ' || partition_rec.partition_name || ' termine'); COMMIT; END LOOP; END PURGE; /
Une clef primaire est référencé dans d'autres tables. Je ne vois pas tropbegin
purge;
end;
ORA-02266: Les clés primaires/uniques de la table référencées par des clés étrangères
ORA-06512: à "SEB.PURGE", ligne 24
ORA-06512: à ligne 2
comment faire pour m'en sortir. Je travaille sous Toad & Oracle 9i
Partager