Bonjour,
il s'agit sûrement d'une question assez bête mais je n'arriva pas trop à) m'en sortir.
C'est au sujet d'un script de création de tables. Au début de ce script j'ai mis des instructions DROP TABLE ... mais pour éviter d'avoir les messages d'erreur "TABLE OR VIEW DOES NOT EXIST ..." on ma donné ce script à mettre au début :
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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47 WHENEVER SQLERROR CONTINUE; WHENEVER OSERROR CONTINUE; declare c number; n number; texte_sql varchar2(2000); exp_existe_deja EXCEPTION; PRAGMA EXCEPTION_INIT(exp_existe_deja, -00955); begin begin c:= dbms_sql.open_cursor; texte_sql := 'DROP TABLE T1'; dbms_sql.parse(c,texte_sql, dbms_sql.native); n := dbms_sql.execute(c); dbms_sql.close_cursor(c); exception when others then null; end; begin c:= dbms_sql.open_cursor; texte_sql := 'DROP TABLE t2'; dbms_sql.parse(c,texte_sql, dbms_sql.native); n := dbms_sql.execute(c); dbms_sql.close_cursor(c); /**** BREF autant de fois qu'il y a de tables .... ****/ exception when Others then dbms_output.put_line(SQLERRM); null; end; /
Le truc c'est que je ne le trouve pas très joli. Je voudrais si possible le simplifier en créant une liste des tables et itérer dessus pour exécuter le code .. mais je ne sais pas comment m'y prendre. De plus je ne sais pas si c'est la meilleure manière de procéder ...
J'en appelle donc à vos connaissances ... comment m'y prendre pour avoir un truc propre et facilement maintenable et transposable à d'autres scripts de ce genre ?
merci d'avance
Partager