Antworten:
Sie benötigen eine IFKlausel, um die Existenz der Tabelle zu überprüfen, und eine separate Anweisung, um sie tatsächlich zu löschen, falls sie vorhanden ist.
Eine alternative Lösung ist hier angegeben :
Erstellen Sie die gespeicherte Funktion db2perf_quiet_drop():
CREATE PROCEDURE db2perf_quiet_drop( IN statement VARCHAR(1000) )
LANGUAGE SQL
BEGIN
DECLARE SQLSTATE CHAR(5);
DECLARE NotThere CONDITION FOR SQLSTATE '42704';
DECLARE NotThereSig CONDITION FOR SQLSTATE '42883';
DECLARE EXIT HANDLER FOR NotThere, NotThereSig
SET SQLSTATE = ' ';
SET statement = 'DROP ' || statement;
EXECUTE IMMEDIATE statement;
END
und benutze es als Begin atomic call db2perf_quiet_drop('table my_table'); End