Maison > base de données > Oracle > exécution de procédure stockée Oracle SQL

exécution de procédure stockée Oracle SQL

WBOY
Libérer: 2023-05-13 12:24:07
original
1224 Les gens l'ont consulté

Dans Oracle Database, une procédure stockée est un ensemble prédéfini d'instructions SQL et de logique de programme qui peuvent être exécutées en fonction de conditions d'entrée spécifiques. Les procédures stockées peuvent être écrites en fonction des besoins de l'entreprise, puis stockées dans la base de données. Les procédures stockées sont utiles dans divers scénarios commerciaux, tels que le traitement de données par lots, la journalisation, les processus automatisés, etc. Cet article expliquera principalement comment écrire et exécuter des instructions SQL dans des procédures stockées Oracle.

Écriture de procédures stockées Oracle

Création de procédures stockées

Pour créer des procédures stockées, vous devez utiliser l'instruction CREATE PROCEDURE La syntaxe spécifique est la suivante :

CREATE [OR REPLACE] PROCEDURE procedure_name
[(parameter_name [IN | OUT | IN OUT] type [, ...])]
IS
[local_variable_declarations;]
BEGIN
    executable_statements
    [EXCEPTION
        exception_handler
        [exception_handler, ...]]
END [procedure_name];
Copier après la connexion

Où, procedure_name est le nom. de la procédure stockée, parameter_name< /code> est le nom du paramètre d'entrée, de sortie ou d'entrée-sortie, <code>type est le type de données du paramètre, local_variable_declarations</code > est l'instruction de déclaration des variables locales, <code>executable_statements</code > est la partie principale de la procédure stockée et <code>exception_handler est le gestionnaire d'exceptions. Dans une procédure stockée, vous pouvez utiliser des instructions SQL pour effectuer des opérations de base de données. procedure_name 是存储过程的名称,parameter_name 是输入、输出或输入输出参数的名称,type 是参数的数据类型,local_variable_declarations 是局部变量的声明语句,executable_statements 是存储过程的主体部分,exception_handler 是异常处理程序。在存储过程内部,可以使用 SQL 语句执行数据库操作。

示例

下面是一个简单的存储过程的示例,用于在 employee 表中插入新记录:

CREATE OR REPLACE PROCEDURE add_employee (employee_id IN NUMBER, name IN VARCHAR2, salary IN NUMBER)
IS
BEGIN
    INSERT INTO employee (employee_id, name, salary)
    VALUES (employee_id, name, salary);
    COMMIT;
EXCEPTION
    WHEN OTHERS THEN
        ROLLBACK;
        RAISE;
END add_employee;
Copier après la connexion

这个存储过程有 3 个输入参数,分别是 employee_idnamesalary。在存储过程主体内,使用 INSERT INTO 语句将输入值插入到 employee 表中。最后,使用 COMMIT 语句提交更改。如果插入操作失败,则使用 ROLLBACK 语句回滚到事务开始时的状态,并使用 RAISE 语句重新抛出异常。

调用存储过程

要调用存储过程,可以使用 CALL 语句,具体语法如下:

CALL procedure_name;
Copier après la connexion

在调用存储过程时,可以传递输入参数,以下是一个例子:

CALL add_employee(123, 'John', 5000);
Copier après la connexion

这将调用 add_employee 存储过程,将值 123、'John' 和 5000 传递给输入参数 employee_idnamesalary。执行结果将是将新记录插入到 employee 表中。

执行 SQL 语句

在存储过程内部,可以使用 SQL 语句执行各种操作。下面是一些常见的 SQL 语句示例:

SELECT 语句

SELECT 语句用于从表中检索记录。以下是 SELECT 语句的语法:

SELECT column1, column2, ...
FROM table_name
[WHERE condition];
Copier après la connexion

其中,column1, column2, ... 是要检索的列名,table_name 是要检索的表名,[WHERE condition] 是可选择的检索条件。例如,以下 SELECT 语句用于检索 employee 表中的所有记录:

SELECT *
FROM employee;
Copier après la connexion

INSERT INTO 语句

INSERT INTO 语句用于将新记录插入到表中。以下是 INSERT INTO 语句的语法:

INSERT INTO table_name (column1, column2, ...)
VALUES (value1, value2, ...);
Copier après la connexion

其中,table_name 是要插入记录的表的名称,column1, column2, ... 是要插入数据的列,value1, value2, ... 是要插入的值。例如,以下 INSERT INTO 语句用于将新记录插入到 employee 表中。

INSERT INTO employee (employee_id, name, salary)
VALUES (123, 'John', 5000);
Copier après la connexion

UPDATE 语句

UPDATE 语句用于更新表中的记录。以下是 UPDATE 语句的语法:

UPDATE table_name
SET column1 = value1, column2 = value2, ...
[WHERE condition];
Copier après la connexion

其中,table_name 是要更新的表名,column1 = value1, column2 = value2, ... 是要更新的列和对应的值,WHERE condition 是可选的更新条件。例如,以下 UPDATE 语句用于将 employee 表中 name 为 'John' 的记录的 salary 值更新为 6000:

UPDATE employee
SET salary = 6000
WHERE name = 'John';
Copier après la connexion

DELETE 语句

DELETE 语句用于删除表中的记录。以下是 DELETE 语句的语法:

DELETE FROM table_name
[WHERE condition];
Copier après la connexion

其中,table_name 是要删除记录的表的名称,WHERE condition 是可选的删除条件。例如,以下 DELETE 语句用于删除 employee 表中 salary

Exemple

Ce qui suit est un exemple de procédure stockée simple pour insérer de nouveaux enregistrements dans la table employee :

DELETE FROM employee
WHERE salary < 5000;
Copier après la connexion
Cette procédure stockée a 3 paramètres d'entrée, qui sont employee_id code>, <code>nom, salaire. Dans le corps de la procédure stockée, utilisez l'instruction INSERT INTO pour insérer les valeurs d'entrée dans la table employee. Enfin, utilisez l'instruction COMMIT pour valider les modifications. Si l'opération d'insertion échoue, utilisez l'instruction ROLLBACK pour revenir à l'état au début de la transaction et utilisez l'instruction RAISE pour renvoyer l'exception. 🎜🎜Appeler une procédure stockée🎜🎜Pour appeler une procédure stockée, vous pouvez utiliser l'instruction CALL, la syntaxe spécifique est la suivante : 🎜rrreee🎜Lors de l'appel d'une procédure stockée, vous pouvez transmettre des paramètres d'entrée, voici un exemple : 🎜 rrreee🎜Cela appellera la procédure stockée add_employee , en passant les valeurs 123, 'John' et 5000 aux paramètres d'entrée employee_id, name et salaire. Le résultat sera un nouvel enregistrement inséré dans la table employé. 🎜🎜Exécuter des instructions SQL🎜🎜Dans une procédure stockée, vous pouvez utiliser des instructions SQL pour effectuer diverses opérations. Voici quelques exemples d'instructions SQL courantes : 🎜🎜Instruction SELECT 🎜🎜L'instruction SELECT est utilisée pour récupérer des enregistrements d'une table. Voici la syntaxe de l'instruction SELECT : 🎜rrreee🎜 Parmi eux, column1, column2, ... est le nom de la colonne à récupérer, table_name est le nom de la table pour être récupéré, [WHERE condition] est une condition de recherche facultative. Par exemple, l'instruction SELECT suivante est utilisée pour récupérer tous les enregistrements de la table employee : 🎜rrreee🎜Instruction INSERT INTO🎜🎜L'instruction INSERT INTO est utilisée pour insérer de nouveaux enregistrements dans la table. Voici la syntaxe de l'instruction INSERT INTO : 🎜rrreee🎜où, table_name est le nom de la table dans laquelle les enregistrements doivent être insérés, et column1, column2, ... est la colonne dans laquelle les données doivent être insérées, <code>value1, value2, ... sont les valeurs à insérer. Par exemple, l'instruction INSERT INTO suivante insère de nouveaux enregistrements dans la table employee. 🎜rrreee🎜Instruction UPDATE🎜🎜L'instruction UPDATE est utilisée pour mettre à jour les enregistrements dans une table. Voici la syntaxe de l'instruction UPDATE : 🎜rrreee🎜où, table_name est le nom de la table à mettre à jour, column1 = value1, column2 = value2, ... est la colonne à mettre à jour et la valeur correspondante, WHERE condition est une condition de mise à jour facultative. Par exemple, l'instruction UPDATE suivante met à jour la valeur salary de l'enregistrement dans la table employee dont le name est « John » à 6000 : 🎜rrreee 🎜Instruction DELETE 🎜🎜L'instruction DELETE est utilisée pour supprimer des enregistrements de la table. Voici la syntaxe de l'instruction DELETE : 🎜rrreee🎜où, table_name est le nom de la table pour supprimer les enregistrements, et WHERE condition est la condition de suppression facultative. Par exemple, l'instruction DELETE suivante est utilisée pour supprimer tous les enregistrements de la table employee avec une valeur salary inférieure à 5 000 : 🎜rrreee🎜Conclusion🎜🎜Dans la base de données Oracle, stocké les procédures sont un outil très utile pour exécuter des instructions SQL prédéfinies et une logique de programme basée sur des conditions d'entrée spécifiques. L'écriture de procédures stockées est une tâche complexe et difficile, mais tant qu'elles sont écrites conformément aux spécifications, les procédures stockées peuvent grandement simplifier les tâches de développement et de gestion de bases de données. L'exécution d'instructions SQL est la partie essentielle des procédures stockées. Elle nécessite la maîtrise de diverses instructions SQL et la compréhension de la manière de les intégrer dans des procédures stocké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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal