-- ============================================================================= -- DC_PROJECTS_NOTIFY_ALTER.sql -- Ergänzt dc_projects um drei Berichtstyp-Flags für die E-Mail-Benachrichtigung. -- Idempotent: bereits vorhandene Spalten werden ignoriert. -- ============================================================================= BEGIN EXECUTE IMMEDIATE ' ALTER TABLE dc_projects ADD ( notify_ok CHAR(1) DEFAULT ''Y'' NOT NULL, notify_hinweis CHAR(1) DEFAULT ''Y'' NOT NULL, notify_abweichend CHAR(1) DEFAULT ''Y'' NOT NULL ) '; DBMS_OUTPUT.PUT_LINE('Spalten notify_ok/notify_hinweis/notify_abweichend angelegt.'); EXCEPTION WHEN OTHERS THEN IF SQLCODE = -1430 THEN DBMS_OUTPUT.PUT_LINE('Spalten existieren bereits – kein Änderungsbedarf.'); ELSE RAISE; END IF; END; / -- Check-Constraints (idempotent) BEGIN EXECUTE IMMEDIATE ' ALTER TABLE dc_projects ADD CONSTRAINT dc_projects_notify_ok_ck CHECK (notify_ok IN (''Y'',''N'')) '; EXCEPTION WHEN OTHERS THEN IF SQLCODE IN (-2264, -2261) THEN NULL; ELSE RAISE; END IF; END; / BEGIN EXECUTE IMMEDIATE ' ALTER TABLE dc_projects ADD CONSTRAINT dc_projects_notify_hinweis_ck CHECK (notify_hinweis IN (''Y'',''N'')) '; EXCEPTION WHEN OTHERS THEN IF SQLCODE IN (-2264, -2261) THEN NULL; ELSE RAISE; END IF; END; / BEGIN EXECUTE IMMEDIATE ' ALTER TABLE dc_projects ADD CONSTRAINT dc_projects_notify_abweichend_ck CHECK (notify_abweichend IN (''Y'',''N'')) '; EXCEPTION WHEN OTHERS THEN IF SQLCODE IN (-2264, -2261) THEN NULL; ELSE RAISE; END IF; END; / COMMIT; EXIT;