Antworten:
Sie benötigen eine IF
Klausel, 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