PL/pgSQL ist kein PL/SQL-Klon
PostgreSQL bietet mit PL/pgSQL eine leistungsfähige prozedurale Sprache. Trotzdem ist sie kein vollständiger Ersatz für Oracle PL/SQL. Besonders Oracle Packages, Package State, Autonomous Transactions und viele DBMS_-Pakete benötigen eine Architekturentscheidung.
Typische Risikobereiche
| Packages | Struktur, globale Variablen und Package State müssen analysiert werden. |
| Trigger | Oft steckt fachliche Logik in scheinbar technischen Triggern. |
| Dynamic SQL | EXECUTE IMMEDIATE erschwert statische Analyse und automatische Konvertierung. |
| Autonomous Transactions | Benötigen meist Redesign, separate Transaktionslogik oder externe Services. |
| DBMS_ / UTL_ | Viele Oracle-Pakete haben keinen direkten PostgreSQL-Ersatz. |
Vier Zielstrategien
- Nach PL/pgSQL migrieren: sinnvoll bei klarer, datenbanknaher Logik.
- In die Anwendung verschieben: sinnvoll bei fachlicher Prozesslogik.
- Als Service neu bauen: sinnvoll bei Dateien, HTTP, Messaging oder Scheduling.
- In Oracle belassen: temporär sinnvoll im Hybrid- oder Wellenmodell.
Bewertung statt Scheinkonvertierung
Ein seriöses Assessment bewertet nicht nur, ob Code syntaktisch übersetzbar ist. Es bewertet, ob die Zielarchitektur nach der Migration wartbar, testbar und betrieblich beherrschbar ist.
Je mehr fachliche Logik in Packages und Triggern steckt, desto weniger ist eine direkte PostgreSQL-Migration ein technisches Mapping.
Empfohlene Analyse
GCON-DB bewertet PL/SQL nach Lines of Code, Abhängigkeiten, Oracle-spezifischen Features, Dynamic SQL, Triggern und Zielstrategie. Das Ergebnis ist eine Risikomatrix statt einer unrealistischen 1:1-Konvertierungsbehauptung.
FAQ
Kann PL/SQL automatisch nach PL/pgSQL konvertiert werden?
Teilweise, aber nicht zuverlässig für komplexe Enterprise-Systeme. Packages, State, Oracle APIs und Transaktionsverhalten benötigen manuelle Bewertung.
Sollte Logik in der Datenbank bleiben?
Nur wenn sie datenbanknah, klar begrenzt und gut testbar ist. Fachliche Prozesslogik gehört oft besser in Anwendung oder Services.
Was ist mit Triggern?
Trigger müssen einzeln klassifiziert werden. ID-Trigger sind meist einfach, fachliche Triggerlogik ist häufig ein hohes Migrationsrisiko.