exécution de procédure stockée Oracle SQL
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];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 语句执行各种操作。下面是一些常见的 SQL 语句示例:
SELECT 语句
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 语句的语法:
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 语句的语法:
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 语句的语法:
DELETE FROM table_name [WHERE condition];
其中,table_name 是要删除记录的表的名称,WHERE condition 是可选的删除条件。例如,以下 DELETE 语句用于删除 employee 表中 salary
employee : DELETE FROM employee WHERE salary < 5000;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!
Outils d'IA chauds
Undress AI Tool
Images de déshabillage gratuites
Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes
AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.
Clothoff.io
Dissolvant de vêtements AI
Video Face Swap
Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !
Article chaud
Outils chauds
Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit
SublimeText3 version chinoise
Version chinoise, très simple à utiliser
Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP
Dreamweaver CS6
Outils de développement Web visuel
SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)
Sujets chauds
Qu'est-ce que l'écouteur Oracle et comment gère-t-il les connexions client à la base de données?
Jun 24, 2025 am 12:05 AM
TheorAraceListEnerActsAsatrafficCopfordatabasEConnectionsBymanagingHowClientSconnectTotheCorrectDatabaseInstance.itrunsasaseParateProcessSliningOnaspEcificNetWorkAddressandport (Habituellement1521), WaitForInCoMingConnectionrequestSS, vérifie le service de service
Quels sont les avantages de l'utilisation de la pompe de données Oracle (EXPDP / IMPDP) par rapport aux utilitaires d'exportation / importation traditionnels?
Jul 02, 2025 am 12:35 AM
OracleDatapump (EXPDP / IMPDP) présente des avantages évidents par rapport aux outils d'exportation / importation traditionnels, et convient particulièrement aux grands environnements de base de données. 1. Performances plus fortes: En fonction du traitement côté serveur, évite les goulots d'étranglement de transfert côté client, prend en charge les opérations parallèles, améliore considérablement la vitesse d'exportation et d'importation; 2. Contrôle plus fin: fournit des paramètres tels que l'inclusion, l'exclusion et la requête pour réaliser un filtrage multidimensionnel tel que le type d'objet, le nom du tableau, la ligne de données; 3. Récupérabilité plus élevée: soutient la pause, le redémarrage et la fixation du travail, ce qui facilite la gestion à long terme des tâches et la récupération des échecs; 4. Traitement des métadonnées plus complète: Enregistrez et reconstruisez automatiquement l'index, les contraintes, les autorisations et autres structures, prend en charge la conversion d'objets pendant l'importation et assure la cohérence de la bibliothèque cible.
Quel est le but des espaces de table temporaires dans Oracle?
Jun 27, 2025 am 12:58 AM
TEMPORARYTABLESSEMENTSInORACLAISUSEDSTOSTORETEMPORARYDATADURINGSQLOPERATIONSLIKESORTING, HASHING, ANDGLOBALTEMPORARYTABLES.1) TROPEURSURATIONSSORDYBY, GROUPBY, ORDISTINDMAYREQUIREDISKSEFPACEIFMEMORYSISINSUFSICT.2) HAUSHJOINSONRGEDATASETSETSETESTEMPORARY
Quelle est la signification de l'instance Oracle et comment est-elle liée à la base de données?
Jun 28, 2025 am 12:01 AM
AnoracleInstanceStheruntimeenvironment adressés à ce que les composents: TheSystemglobalArea (SGA) (SGA), RedologBuffer, sont-ils.
Comment pouvez-vous cloner une base de données Oracle à l'aide de RMAN ou d'autres méthodes?
Jul 04, 2025 am 12:02 AM
Les méthodes de clonage des bases de données Oracle incluent l'utilisation de RManDuplicate, la récupération manuelle des sauvegardes à froid, les instantanés du système de fichiers ou la réplication au niveau du stockage et le clonage logique de données. 1. RManduplicate prend en charge la réplication à partir de bases de données ou de sauvegardes actives, et nécessite la configuration des instances auxiliaires et l'exécution des commandes en double; 2. La méthode de sauvegarde froide nécessite la fermeture de la bibliothèque source et la copie des fichiers, ce qui convient aux environnements contrôlables mais nécessite des temps d'arrêt; 3. Les instantanés de stockage conviennent aux systèmes de stockage au niveau de l'entreprise, qui sont rapides mais dépendent de l'infrastructure; 4. DataPump est utilisé pour la réplication hiérarchique logique, qui convient à la migration de modes ou de tables spécifiques. Chaque méthode a ses scénarios et limitations applicables.
Comment Oracle Geory Transaction Commits and Rollbacks en utilisant les mécanismes de rétablissement et d'annulation?
Jul 08, 2025 am 12:16 AM
OracleenSureSransactiondurabilité et conscience de la consultation de l'oorcomètres et de la forge
Quelle est la différence entre une procédure et une fonction dans PL / SQL?
Jun 21, 2025 am 12:05 AM
Dans PL / SQL, la différence de base entre une procédure et une fonction est sa valeur de but et de retour: 1. La procédure est utilisée pour effectuer des opérations et ne force pas la valeur de retour, mais peut renvoyer plusieurs valeurs via le paramètre OUT; 2. La fonction est utilisée pour calculer et renvoyer une seule valeur, qui est souvent utilisée dans les expressions ou les instructions SQL; Par exemple, la procédure Update_Salary peut effectuer des opérations de mise à jour, tandis que la fonction Get_Bonus renvoie le montant du bonus calculé; La procédure convient à la modification des données et à plusieurs scénarios de sortie, et la fonction convient à la logique de calcul qui doit être intégrée dans SQL; De plus, les fonctions peuvent être appelées dans le processus, mais les procédures ne peuvent pas être appelées directement dans l'instruction SQL.
En quoi le programme Global Area (PGA) diffère-t-il de la SGA dans Oracle Architecture?
Jul 01, 2025 am 12:51 AM
Thepgaisprocess-spécifiqueMmemoryForIndividualssions, tandis que lesgaisharedmemory pour lesvariables, SqlexEcutionMmemory, et CursorState, PrivateToEensiable.


