Maison  >  Article  >  base de données  >  Oracle SQL exécute une procédure stockée

Oracle SQL exécute une procédure stockée

王林
王林original
2023-05-11 21:57:352259parcourir

Dans la base de données Oracle, une procédure stockée est un ensemble prédéfini d'instructions SQL qui peuvent être exécutées en cas de besoin. Contrairement aux instructions SQL écrites à tout moment, les procédures stockées sont plus efficaces, peuvent réduire le trafic réseau lors de l'accès aux données et améliorer les performances du système.

Dans les applications réelles, nous pouvons avoir besoin d'effectuer des opérations de base de données complexes, qui peuvent être réalisées en appelant des procédures stockées. La base de données Oracle fournit une syntaxe simple et claire pour créer des procédures stockées. Les utilisateurs peuvent personnaliser des informations telles que les paramètres et les valeurs de retour en fonction des besoins, et peuvent également configurer des instructions de contrôle de processus, la gestion des exceptions, le traitement des transactions et d'autres fonctions.

Cet article utilisera un exemple simple pour présenter comment exécuter des procédures stockées dans la base de données Oracle.

  1. Créer des procédures stockées

Dans la base de données Oracle, la création de procédures stockées nécessite l'utilisation du langage PL/SQL, qui est l'outil spécial d'Oracle pour les procédures stockées procédures, un langage écrit dans des processus tels que des déclencheurs et des fonctions. Voici une syntaxe de base pour créer une procédure stockée :

CREATE [OR REPLACE] PROCEDURE procedure_name
[(parameter_name [IN | OUT | IN OUT] type [, ...])]
IS
    [declaration_section]
BEGIN
    executable_section
[EXCEPTION
    exception_section]
END [procedure_name];

Description :

  • CREATE [OR REPLACE] : Créez une procédure stockée.
  • procedure_name : Le nom de la procédure stockée qui doit être créée.
  • parameter_name : Le nom du paramètre de la procédure stockée, qui peut être de type IN, OUT ou IN OUT. IN représente les paramètres d'entrée et OUT représente les paramètres de sortie.
  • type : Le type de données du paramètre.
  • declaration_section : Déclarez des variables, des curseurs, des constantes, etc.
  • executable_section : La partie d'exécution réelle de la procédure stockée.
  • exception_section : bloc de code de gestion des exceptions.

Ce qui suit est un exemple simple pour créer une procédure stockée pour interroger les informations d'un numéro d'employé spécifié :

CREATE OR REPLACE PROCEDURE get_employee_info (p_empno IN NUMBER)
IS
    v_ename employees.ename%TYPE;
    v_job employees.job%TYPE;
    v_salary employees.sal%TYPE;
BEGIN
    SELECT ename, job, sal INTO v_ename, v_job, v_salary FROM employees WHERE empno = p_empno;
    DBMS_OUTPUT.PUT_LINE('Employee Name: ' || v_ename);
    DBMS_OUTPUT.PUT_LINE('Job: ' || v_job);
    DBMS_OUTPUT.PUT_LINE('Salary: ' || v_salary);
EXCEPTION
    WHEN NO_DATA_FOUND THEN
        DBMS_OUTPUT.PUT_LINE('Employee not found');
END;
  1. Exécuter la procédure stockée# 🎜🎜 #
Après avoir créé la procédure stockée, nous pouvons l'exécuter de plusieurs manières. Voici quelques méthodes alternatives :

2.1 Utilisez les outils de développement PL/SQL pour exécuter

Vous pouvez utiliser les outils de développement PL/SQL fournis par Oracle pour exécuter des procédures stockées. Après avoir ouvert l'outil, connectez-vous à l'instance de base de données qui doit être exécutée, recherchez la procédure stockée créée, cliquez avec le bouton droit et sélectionnez "Exécuter la procédure", entrez les paramètres requis pour exécuter la procédure stockée.

2.2 Utilisez SQL*Plus pour exécuter

Vous pouvez également utiliser l'outil de ligne de commande SQL*Plus fourni par Oracle pour exécuter des procédures stockées. Après vous être connecté à l'instance de base de données qui doit être exécutée, exécutez la commande suivante pour exécuter la procédure stockée :

EXEC procedure_name (parameter_value);

Par exemple, pour exécuter la procédure stockée créée ci-dessus, vous pouvez utiliser la commande suivante : # 🎜🎜#
EXEC get_employee_info (100);

2.3 Utiliser l'exécution de programmes Java

Lorsque la logique métier de la base de données est relativement complexe, nous pouvons appeler des procédures stockées via des programmes Java pour implémenter une logique métier plus avancée. Ce qui suit est un simple programme Java pour appeler la procédure stockée créée ci-dessus :

import java.sql.*;

public class ExecuteProcedure {
    public static void main(String[] args) {
        String url = "jdbc:oracle:thin:@localhost:1521:orcl";
        String user = "username";
        String password = "password";
        try {
            Connection conn = DriverManager.getConnection(url, user, password);
            CallableStatement cst = conn.prepareCall("{call get_employee_info(?)}");
            cst.setInt(1, 100);
            cst.execute();
            conn.close();
        } catch(SQLException e) {
            System.out.println(e.getMessage());
        }
    }
}

Le programme se connecte d'abord à la base de données, puis utilise la classe CallableStatement de Java pour appeler la procédure stockée. Avant d'appeler la procédure stockée, vous devez définir les valeurs des paramètres. Lors de l'exécution de la procédure stockée, le programme affichera des informations pertinentes sur le numéro d'employé 100.

Résumé

Ce qui précède est l'introduction de base à l'exécution de procédures stockées dans une base de données Oracle. Les procédures stockées sont un outil puissant et efficace qui peut favoriser l'optimisation des performances des bases de données et améliorer dans une certaine mesure l'efficacité du développement. Dans le même temps, cela nécessite également que les utilisateurs maîtrisent le langage PL/SQL afin de mieux utiliser les procédures stockées pour le traitement des données.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn