Oracle
 sql >> Datenbank >  >> RDS >> Oracle

Komponententests von DDL-Anweisungen, die in einer Transaktion enthalten sein müssen

Zunächst muss ich sagen:Schlechte Idee, es so zu machen. Aus zwei Gründen:

  1. Verbindungen basieren auf dem Benutzer. Das bedeutet, dass Sie die Vorteile des Verbindungspoolings weitgehend verlieren. Es skaliert auch nicht besonders gut. Wenn Sie 10.000 Benutzer gleichzeitig haben, werden Sie ständig harte Verbindungen öffnen und schließen (anstelle von Pools für weiche Verbindungen). und
  2. Wie Sie festgestellt haben, ist das Erstellen und Entfernen von Benutzern DDL und nicht DML, und daher verlieren Sie "Transaktionalität".

Ich bin mir nicht sicher, warum Sie sich dafür entschieden haben, aber ich würde es stark tun empfehlen, Benutzer auf der Anwendungs- und nicht auf der Datenbankebene zu implementieren.

Wie Sie Ihr Problem lösen können, können Sie im Grunde nicht. Genauso, als würden Sie mitten in Ihrer Sequenz eine Tabelle oder einen Index erstellen.