Maison  >  Article  >  base de données  >  Comment transmettre des paramètres au déclencheur de base de données Oracle

Comment transmettre des paramètres au déclencheur de base de données Oracle

下次还敢
下次还敢original
2024-04-07 16:48:18958parcourir

Les déclencheurs de base de données Oracle peuvent recevoir des paramètres pour améliorer la flexibilité. Il existe deux manières de transmettre des paramètres : 1. Affectation directe : déclarez les paramètres dans la définition du déclencheur et utilisez l'accès au nom dans le code du déclencheur ; 2. Utilisez pragma autonome_transaction : utilisez pragma dans la définition du déclencheur et utilisez autonome_transaction dans le code du déclencheur ; accéder aux paramètres.

Comment transmettre des paramètres au déclencheur de base de données Oracle

Transmission des paramètres de déclenchement de la base de données Oracle

Les déclencheurs peuvent recevoir des paramètres, ce qui améliore leur flexibilité et permet d'effectuer des actions personnalisées en fonction de conditions spécifiques. Oracle Database prend en charge la transmission de paramètres aux déclencheurs de deux manières :

Méthode 1 : affectation directe

  • Utilisez deux points (:) dans la définition du déclencheur pour déclarer les paramètres du déclencheur.
  • Dans le code du déclencheur, accédez au paramètre transmis en utilisant son nom.

Exemple :

<code class="sql">CREATE OR REPLACE TRIGGER my_trigger
BEFORE INSERT ON my_table
FOR EACH ROW
BEGIN
  :new.my_column := :old.my_column + 1;
END;</code>

Méthode 2 : Utilisation de pragma autonome_transaction

  • Utilisez pragma autonome_transaction dans la définition du déclencheur. pragma autonomous_transaction
  • 在触发器代码中,使用 autonomous_transaction
  • Dans le code déclencheur, utilisez la fonction autonomous_transaction pour accéder aux paramètres PL/SQL.

Exemple :

<code class="sql">CREATE OR REPLACE TRIGGER my_trigger
PRAGMA AUTONOMOUS_TRANSACTION
BEFORE INSERT ON my_table
FOR EACH ROW
BEGIN
  autonomous_transaction.new.my_column := autonomous_transaction.old.my_column + 1;
END;</code>
Remarque :
  • Les paramètres de déclenchement ne peuvent être que des paramètres IN.
  • La valeur du paramètre transmise reste inchangée pendant l'exécution du déclencheur.
  • Lors de l'utilisation de pragma autonome_transaction, le déclencheur s'exécutera dans la transaction AUTONOMOUS, isolée de la transaction appelée par le déclencheur.
🎜

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