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
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 pas
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 select owner, table_name from all_tables where owner = and table_name =
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 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;
/
Et ce n'est pas clair qu'il faut ajouter un ; comme ça
Tu ne t'attends pas que OraFrance teste le code qu'il poste
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 AND table_name = 'TEMP_TADATE_MAJ') ;![]()
Partager