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.
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];
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;
这个存储过程有 3 个输入参数,分别是 employee_id
、name
、salary
。在存储过程主体内,使用 INSERT INTO 语句将输入值插入到 employee
表中。最后,使用 COMMIT 语句提交更改。如果插入操作失败,则使用 ROLLBACK 语句回滚到事务开始时的状态,并使用 RAISE 语句重新抛出异常。
要调用存储过程,可以使用 CALL 语句,具体语法如下:
CALL procedure_name;
在调用存储过程时,可以传递输入参数,以下是一个例子:
CALL add_employee(123, 'John', 5000);
这将调用 add_employee
存储过程,将值 123、'John' 和 5000 传递给输入参数 employee_id
、name
和 salary
。执行结果将是将新记录插入到 employee
表中。
在存储过程内部,可以使用 SQL 语句执行各种操作。下面是一些常见的 SQL 语句示例:
SELECT 语句用于从表中检索记录。以下是 SELECT 语句的语法:
SELECT column1, column2, ... FROM table_name [WHERE condition];
其中,column1, column2, ...
是要检索的列名,table_name
是要检索的表名,[WHERE condition]
是可选择的检索条件。例如,以下 SELECT 语句用于检索 employee
表中的所有记录:
SELECT * FROM employee;
INSERT INTO 语句用于将新记录插入到表中。以下是 INSERT INTO 语句的语法:
INSERT INTO table_name (column1, column2, ...) VALUES (value1, value2, ...);
其中,table_name
是要插入记录的表的名称,column1, column2, ...
是要插入数据的列,value1, value2, ...
是要插入的值。例如,以下 INSERT INTO 语句用于将新记录插入到 employee
表中。
INSERT INTO employee (employee_id, name, salary) VALUES (123, 'John', 5000);
UPDATE 语句用于更新表中的记录。以下是 UPDATE 语句的语法:
UPDATE table_name SET column1 = value1, column2 = value2, ... [WHERE condition];
其中,table_name
是要更新的表名,column1 = value1, column2 = value2, ...
是要更新的列和对应的值,WHERE condition
是可选的更新条件。例如,以下 UPDATE 语句用于将 employee
表中 name
为 'John' 的记录的 salary
值更新为 6000:
UPDATE employee SET salary = 6000 WHERE name = 'John';
DELETE 语句用于删除表中的记录。以下是 DELETE 语句的语法:
DELETE FROM table_name [WHERE condition];
其中,table_name
是要删除记录的表的名称,WHERE condition
是可选的删除条件。例如,以下 DELETE 语句用于删除 employee
表中 salary
employee
: DELETE FROM employee WHERE salary < 5000;
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!