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 Datentyprefcursor
unterstützt. Ein Beispiel für die Verwendung desrefcursor
-Datentyps finden Sie unter Rückgabe einer Ergebnismenge.