Bonjour,
Comment faire un drop table si ma table existe
en faite c'est surtout comment vérifier que la table existe avant de faire le drop, j'ai chercher partout mais rien de concret ne marche
Version imprimable
Bonjour,
Comment faire un drop table si ma table existe
en faite c'est surtout comment vérifier que la table existe avant de faire le drop, j'ai chercher partout mais rien de concret ne marche
Tu peux vérifier dans la vue all_tables si ta table existe.
Après, ton programme doit vérifier si le query te renvoie une valeur ou pasCode:
1
2
3
4 select owner, table_name from all_tables where owner = and table_name =
Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 DECLARE dummy INTEGER; BEGIN SELECT 1 INTO dummy FROM dual WHERE EXISTS (SELECT 1 FROM all_tables WHERE owner = 'TON_SCHEMA' AND table_name = 'TA_TABLE'); EXECUTE IMMEDIATE 'DROP TABLE ton_schema.ta_table'; EXCEPTION WHEN NO_DATA_FOUND THEN null; END; /
j'ai l'erreur symbole Execute à rencontré à la place d'un des symboles suivants : ; for and or group having intersect minus order start union where connect
Ouff!
mon code
DECLARE
dummy INTEGER;
BEGIN
SELECT 1
INTO dummy
FROM dual
WHERE EXISTS (SELECT 1 FROM all_tables
WHERE owner = 'EXP_SVPA_P'
AND table_name = 'TEMP_TADATE_MAJ')
EXECUTE IMMEDIATE 'DROP TABLE EXP_SVPA_P.TEMP_TADATE_MAJ';
EXCEPTION WHEN NO_DATA_FOUND THEN
NULL;
END;
/
en effet j'avais pas testé :aie: