Considérations relatives à la prise en charge des procédures stockées - Amazon Redshift

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Considérations relatives à la prise en charge des procédures stockées

Les considérations suivantes s’appliquent lorsque vous utilisez des procédures stockées Amazon Redshift.

Différences entre Amazon Redshift et PostgreSQL pour la prise en charge des procédures stockées

Voici les différences entre la prise en charge des procédures stockées dans Amazon Redshift et PostgreSQL :

  • Amazon Redshift ne prend pas en charge les sous-transactions et, par conséquent, offre une prise en charge limitée pour les blocs de gestion des exceptions.

Considérations et limites

Vous trouverez ci-après des considérations sur les procédures stockées dans Amazon Redshift :

  • Le nombre maximal de procédures stockées pour une base de données est de 10 000.

  • La taille maximale du code source pour une procédure est de 2 Mo.

  • Le nombre maximal de curseurs implicites et explicites que vous pouvez ouvrir simultanément dans une session utilisateur est de 1 (un). Les boucles FOR qui itèrent sur l’ensemble des résultats d’une instruction SQL ouvrent les curseurs implicites. Les curseurs imbriqués ne sont pas pris en charge.

  • Les curseurs explicites et implicites ont les mêmes restrictions sur la taille de l’ensemble de résultats que les curseurs Amazon Redshift standard. Pour plus d'informations, consultez Contraintes de curseur.

  • Le nombre maximal de niveaux pour les appels imbriqués est de 16.

  • Le nombre maximal de paramètres de procédure est de 32 pour les arguments en entrée et de 32 pour les arguments en sortie.

  • Le nombre maximal de variables dans une procédure stockée est de 1 024.

  • Toute commande SQL qui nécessite son propre contexte de transaction n’est pas prise en charge à l’intérieur d’une procédure stockée. En voici quelques exemples :

    • PREPARE

    • CREATE/DROP DATABASE

    • CREATE EXTERNAL TABLE

    • VACUUM

    • SET LOCAL

    • ALTER TABLE APPEND

  • L’appel de la méthode registerOutParameter via le pilote JDBC (Java Database Connectivity) n’est pas pris en charge pour le type de données refcursor. Pour obtenir un exemple de l’utilisation du type de données refcursor, consultez Retour d’un ensemble de résultats.