Überlegungen zur Unterstützung für gespeicherte Prozeduren - Amazon Redshift

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Überlegungen zur Unterstützung für gespeicherte Prozeduren

Bei der Verwendung von in Amazon Redshift gespeicherten Prozeduren gelten folgende Überlegungen.

Unterschiede zwischen Amazon Redshift und PostgreSQL bezüglich des Supports für gespeicherte Prozeduren

Folgende Unterschiede gibt es zwischen dem Support für gespeicherte Prozeduren in Amazon Redshift und PostgreSQL:

  • Amazon Redshift unterstützt keine Subtransaktionen und bietet deshalb begrenzten Support für Ausnahmehandhabungsblöcke.

Überlegungen und Limits

Folgende Überlegungen gelten für in Amazon Redshift gespeicherte Prozeduren:

  • Die maximale Anzahl von gespeicherten Prozeduren für eine Datenbank beträgt 10 000.

  • Der Quellcode einer Prozedur darf maximal 2 MB betragen.

  • Die maximale Anzahl expliziter und impliziter Cursor, die Sie gleichzeitig in einer Benutzersitzung öffnen können, ist eins. FOR-Loops, die über die Ergebnismenge einer SQL-Anweisung iterieren, öffnen implizite Cursor. Verschachtelte Cursor werden nicht unterstützt.

  • Explizite und implizite Cursors verfügen über dieselben Einschränkungen bezüglich der Ergebnismenge wie Standard-Amazon-Redshift-Cursors. Weitere Informationen finden Sie unter Einschränkungen für Cursors.

  • Die maximale Anzahl an Ebenen für verschachtelte Aufrufe ist 16.

  • Die maximale Anzahl an Prozedurparametern ist 32 für Eingabe- und 32 für Ausgabeparameter.

  • Die maximale Anzahl an Variablen in einer gespeicherten Prozedur ist 1.024.

  • Jeder SQL-Befehl, der einen eigenen Transaktionskontext erfordert, wird innerhalb einer gespeicherten Prozedur nicht unterstützt. Beispiele sind unter anderem:

    • PREPARE

    • CREATE/DROP DATABASE

    • CREATE EXTERNAL TABLE

    • VACUUM

    • SET LOCAL

    • ALTER TABLE APPEND

  • Der Aufruf der registerOutParameter-Methoden durch den Java Database Connectivity (JDBC)-Treiber wird nicht für den Datentyp refcursor unterstützt. Ein Beispiel für die Verwendung des refcursor-Datentyps finden Sie unter Rückgabe einer Ergebnismenge.