Rechercher : dans
Par :

Aide sur les trigger en oracle

Dernière réponse le 25 jan 2008 à 15:27:44 tfcv123, le 25 jan 2008 à 13:10:12 
 Signaler ce message aux modérateurs

Bonjour,

j'ai un pbm avec mon script oracle . en effet , je souhaite créer un trigger qui permet d'incrementer la valeurs d'un atrribut d'une table lorke j'insere les donnés dans une autre table.
voici cmt je crée mon trigger

create trigger Ajout_commande
after insert on ligne_coms --- ma table ligne_coms
for each row
begin
update commandes
set commandes.nbrelec=( select count(*) from Ligne_coms, commandes where commandes.num_com=ligne_coms.num_com
)
end;

et ca me donne cette erreur "déclencheur crée avec erreur de compilation" losque je veus inserer dan sla table ca me di q'il ne peut pa inserer parce qu'il y a une erreur sur le trigger.

merci pour votre aide

Configuration: Windows XP
Internet Explorer 7.0

Meilleures réponses pour « aide sur les trigger en oracle » dans :
Connexion à une base Oracle en php Voir1. Périmètre Cet article est un exemple de connexion à une base Oracle par le biais d'un script php. Cet article ne traite pas la configuration de votre serveur Oracle, et de votre client Oracle. Nous partons du principe que vous pouvez accéder à...
Linux - Oracle - Installation d'Oracle 11g sous Linux Ubuntu VoirPrésentation Téléchargement d’UBUNTU Téléchargement d’Oracle Configuration du serveur X Mise à jour des packages Installation des packages de pré-installation Mise à jour du shell Mise à jour de la configuration des utilisateurs...
Oracle - Optimisation des requêtes VoirOracle est fourni avec un optimiseur qui permet d'optimiser le plan d'exécution d'une requête. Parfois, les caractéristiques des données dans la base de données sont en évolution rapide, afin que l'optimiseur (ses statistiques) soit mis à jour....
Oracle - Les séquences VoirCet article s'appuie sur la version 8.1.6 d'Oracle. Une séquence est un objet de base de données Oracle, au même titre qu'une table, une vue, etc... Autrement dit, il appartient à un utilisateur, on peut le manipuler, le modifier, à condition...
Oracle - Introduction au SGBD Oracle VoirIntroduction au SGBD Oracle Oracle est un SGBD (système de gestion de bases de données) édité par la société du même nom (Oracle Corporation - http://www.oracle.com), leader mondial des bases de données. La société Oracle Corporation a été créée en...
Oracle - Les requêtes hiérarchiques VoirCet article se base sur des tests et recherches réalisés dans la version 8.1.5 d'Oracle. Introduction Tout au long de cet article, nous allons nous intéresser à une structure de données permettant de créer un Forum de discussion, matérialisé par...

1

PPBoyington, le 25 jan 2008 à 13:17:41

Bonjour,
je ne vois pas de faute de syntaxe au 1er coup d'oeil par contre fonctionnellement je ne vois pas l'interet de mettre a jour commandes.nbrelec de toutes les commandes (ben oui puisqu'il n'y a pas de where dans l'update) avec le nombre total de lignes de commandes.

Répondre à PPBoyington

3

tfcv123, le 25 jan 2008 à 13:43:07

Enfait, je dois créer un trigger sur la table Lign_com qui à l'ajout d'une nvelle ligne incrémente de 1 l'attribut nbrelec dans la table commandes c'est pourkpoi j'ai ecrit ce trigger

Répondre à tfcv123

2

tfcv123, le 25 jan 2008 à 13:41:16

enfait, je dois créer un trigger sur la table Lign_com qui à l'ajout d'une nvelle ligne incrémente de 1 l'attribut nbrelec dans la table commandes

Répondre à tfcv123

4

PPBoyington, le 25 jan 2008 à 13:54:25

Ca je l'avais compris mais il me semble que le compteur va etre incrémenté pour toutes les commandes...bonjour le temps de réponse a chaque création si tu met a jour toutes les commandes.

Répondre à PPBoyington

5

tfcv123, le 25 jan 2008 à 14:10:23

Mais comment faire si je fais j'ai essayé ca mais ce me donne tjrs la mm erreure
Avertissement : Déclencheur créé avec erreurs de compilationcreate trigger Ajout_commande
after insert on ligne_coms
for each row
begin
update commandes
select nbrelec from commandes, ligne_com where commandes.num_com=ligne_coms.num_com
set commandes.nbrelec=( select count(*) from Ligne_coms,commandes where commandes.num_com=ligne_coms.num_com )
end;

Répondre à tfcv123

6

PPBoyington, le 25 jan 2008 à 14:46:11

Je suis désolé mais je ne connais pas assez les triggers, je ne faisais que donner un avis fonctionnel.

Répondre à PPBoyington

7

nanci, le 25 jan 2008 à 15:10:02

Bonjour
vous pouvez initialiser "commandes.nbrelec=0" l'or de la création de la table
ensuit vous ajouter le triger
create trigger Ajout_commande
after insert on ligne_coms --- ma table ligne_coms
for each row
begin
update commandes
set commandes.nbrelec=commandes.nbrelec+1
end;

Répondre à nanci

8

 tfcv123, le 25 jan 2008 à 15:27:44

Merci pour ton aid emais il me done tjrs la mm erreure

Répondre à tfcv123
Collection CommentÇaMarche.net