Maison >base de données >tutoriel mysql >Comment récupérer DBMS_OUTPUT.GET_LINES d'Oracle dans JDBC sans créer d'objets de base de données ?
Récupération de DBMS_OUTPUT.GET_LINES dans JDBC sans créer d'objets de base de données
Dans Oracle, DBMS_OUTPUT.GET_LINES fournit un mécanisme pour récupérer la sortie des procédures stockées ou d'autres opérations de base de données. Bien qu'il soit possible de créer des objets supplémentaires dans la base de données pour faciliter ce processus, il peut être souhaitable d'éviter cette surcharge. Cet article explique comment obtenir la sortie DBMS_OUTPUT.GET_LINES en Java à l'aide de JDBC sans recourir à des entités de base de données externes.
Activation de la mise en mémoire tampon de sortie
La première étape consiste à activer la mise en mémoire tampon de sortie. en utilisant DBMS_OUTPUT.ENABLE(). Cela permet de capturer la sortie du serveur pendant l'exécution des opérations de base de données.
Capture de la sortie
Pour capturer la sortie, DBMS_OUTPUT.GET_LINES() est utilisé. Cette procédure récupère un nombre spécifié de lignes de sortie dans un curseur SQL. Il est crucial d'enregistrer le paramètre de sortie sous forme de tableau de type "DBMSOUTPUT_LINESARRAY" pour recevoir les résultats.
Récupération de la sortie
Le DBMSOUTPUT_LINESARRAY contient un tableau d'objets représentant la sortie lignes. Pour obtenir la sortie réelle, le tableau est récupéré à l'aide de la méthode getArray() de JDBC.
Exemple de code
try (CallableStatement call = c.prepareCall( //这段代码用于设置enable output buffering,在DBMS_OUTPUT.PUT_LINE()与DBMS_OUTPUT.GET_LINES()之间执行 "declare num integer := 1000; begin dbms_output.enable(); ..." )) { // ... remaining code to capture and print output }
Intégration jOOQ
jOOQ, une bibliothèque Java pour travailler avec SQL, fournit un moyen pratique de récupérer automatiquement le résultat des exécutions du serveur. En définissant withFetchServerOutputSize() dans l'objet Paramètres, jOOQ récupérera la sortie du serveur lors de l'exécution de la requête.
Recommandation : DBMS_OUTPUT.GET_LINES sur DBMS_OUTPUT.GET_LINE
Pendant que DBMS_OUTPUT.GET_LINE renvoie une seule ligne à la fois, il est fortement recommandé d'utiliser DBMS_OUTPUT.GET_LINES à la place. Des benchmarks ont montré que DBMS_OUTPUT.GET_LINES est nettement plus rapide lorsqu'il est appelé depuis JDBC.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!