Précédent   Forum des professionnels en informatique > Bases de données > Oracle > PL/SQL
PL/SQL Forum d'entraide sur le PL/SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 08/01/2008, 17h18   #1
Membre habitué
 
Avatar de LinuxUser
 
Inscription : avril 2007
Messages : 450
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 450
Points : 131
Points : 131
Par défaut Question sur TRIGGER (Voire Procédure)

Bonjour,
Admettons que j'ai une Table de Fournisseurs et une de Commande (passées auprès des fournisseurs).
Je crée une autre Table HistoriqueCommande qui contiendra les commandes supprimées (de la table commande) une fois la date de livraison atteinte.

Voilà à présent ma question :

Je souaiterais qu'à chaque commande supprimée elle soit archivée dans la Table HistoriqueCommande.//ça je l'ai fait avec un TRIGGER sans problème
Par contre comment gérer automatiquement le fait qu'une date de livraison soit atteinte entraine la suppression de cette commande.
Car avec les TRIGGER on ne peut agir qu'a la suppression,l'insertion,la mise à jour d'une table. On ne peut pas la "surveiller".
Le mien que je puisse faire c'est une procédure, mais il faut tout de même la lancer manuellement.

Donc voilà, si je me suis bien exprimé, savez-vous comment effectuer cette "surveillance" automatiquement?

Merci.
LinuxUser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 17h22   #2
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
tu ne peux pas, faut faire un job qui se déclenche tous les jours à minuit éventuellement... Sinon, on peut quand même imaginer que quand la livraison est effectivement faite, la date de livraison est mise à jour et alors tu peux déclencher un trigger.

Par ailleurs, le fonctionnement parait bancal... ça me paraitrait plus logique et performant de mettre une période de validité sur la commande (si date de fin < aujoud'hui alors la commande est terminé) ou un status (OUVERTE, ANNULEE, CLOSE, EN COURS, etc...)
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 17h38   #3
Membre habitué
 
Avatar de LinuxUser
 
Inscription : avril 2007
Messages : 450
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 450
Points : 131
Points : 131
Mais pour déclencher le TRIGGER il faut un DELETE,INSERT ou UPDATE.
C'est bien là le problème, comment "surveiller" la date de livraison pour qu'une fois atteinte on SUPPRIME le tuple et donc déclencher le TRIGGER pour archiver.
Vous voyez ce que je veux dire?
LinuxUser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 18h06   #4
Expert Confirmé
 
Avatar de 7gyY9w1ZY6ySRgPeaefZ
 
Homme
dba
Inscription : juillet 2007
Messages : 2 523
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Canada

Informations professionnelles :
Activité : dba

Informations forums :
Inscription : juillet 2007
Messages : 2 523
Points : 3 972
Points : 3 972
Avec un job, tu t'affranchis du trigger.
7gyY9w1ZY6ySRgPeaefZ est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 18h10   #5
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
Citation:
Envoyé par juve1897 Voir le message
Mais pour déclencher le TRIGGER il faut un DELETE,INSERT ou UPDATE.
C'est bien là le problème, comment "surveiller" la date de livraison pour qu'une fois atteinte on SUPPRIME le tuple et donc déclencher le TRIGGER pour archiver.
Vous voyez ce que je veux dire?
je vois très bien et je t'ai dit que tu pouvais faire un job déclenché tous les jours à minuit

Mais ce que je vois aussi c'est qu'une livraison ça peut être en retard... donc que la date de livraison REELLE doit être renseignée quelque part... ce qui se fera avec un update et tu pourras alors déclencher un trigger.

M'enfin, j'suis pas dans l'appli et tu fais bien comme tu veux
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 18h16   #6
Membre habitué
 
Avatar de LinuxUser
 
Inscription : avril 2007
Messages : 450
Détails du profil
Informations forums :
Inscription : avril 2007
Messages : 450
Points : 131
Points : 131
C'est juste, vous aviez raison je me suis trompé.
Je vois ce que j'ai à faire à présent.
Désolé de vous avoir dérangé pour rien.
LinuxUser est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 18h22   #7
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
Citation:
Envoyé par juve1897 Voir le message
C'est juste, vous aviez raison je me suis trompé.
Je vois ce que j'ai à faire à présent.
Désolé de vous avoir dérangé pour rien.
Il peut être utile de sonder du côté du partitionnement de la table ...
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 18h35   #8
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
tu vas un peu vite en besogne... en plus, je rappelle à toute fin utile que l'option est loin d'être gratuite
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 19h00   #9
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
Citation:
Envoyé par orafrance Voir le message
tu vas un peu vite en besogne... en plus, je rappelle à toute fin utile que l'option est loin d'être gratuite
ِCertainement!

C'est néanmoins une option valable à regarder et ça peut valoir le coût. Nous pouvons énumérer plein de points positifs par rapport à la situation décrite ici. D'un autre côté, certains ont déjà la licence mais ne l'utilisent pas
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 08/01/2008, 21h28   #10
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
on peut parler de parallélisme et standby database dans ce cas

Je ne remets pas en cause l'intérêt du partitionnement, juste que dans la discussion présente c'est un peu HS au regard du manque d'info notamment en terme de volume
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 07h12   #11
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
Citation:
Envoyé par orafrance Voir le message
on peut parler de parallélisme et standby database dans ce cas

Je ne remets pas en cause l'intérêt du partitionnement, juste que dans la discussion présente c'est un peu HS au regard du manque d'info notamment en terme de volume
Désolé mais d'abord j'ai dit que c'est une piste à sonder c'est-à-dire une solution éventuelle
Et ça n'a rien à voir avec toutes les technologies que tu as énumérées. C'est directement lié à la question originale dans ce sens : Le partitionnement peut rendre le job proposé à juste titre et éventuellement la deuxième table HistoriqueCommande carrément inutiles puisque l'historisation se fera "naturellement". Bien sûr la taille des données est importante pour en décider mais le paratitionnemnet n'est pas hors sujet comme tu l'a dit. Après tout notre rôle dans le forum est également de conseiller sur la technologie à utiliser non
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 09h03   #12
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
J'ai bien compris... mon intervention a surement paru intransigeante alors que ce n'était pas le cas, désolé Fallait lire mon message sur le ton de la légèreté, les smilies en témoignent

Ceci étant dit, le déplacement entre partition à quand même un coût et dans le cas présent je pense que c'est juste le besoin fonctionnel qui est mal défini. On ne supprime pas (logiquement ou physiquement peu importe) une commande de la même manière qu'on ne supprime pas des factures.
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 14h07   #13
Membre éprouvé
 
Inscription : décembre 2007
Messages : 354
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : décembre 2007
Messages : 354
Points : 408
Points : 408
Citation:
Envoyé par orafrance Voir le message
J'ai bien compris... mon intervention a surement paru intransigeante alors que ce n'était pas le cas, désolé Fallait lire mon message sur le ton de la légèreté, les smilies en témoignent
Non Orafrance! Je ne l'ai pas pris autrement ...
Mais je voulais persister puisqu'il me paraît que nous étions devant une situation typique d'utilisation de partitionnement (indépendamment de la suppression des commandes et du trigger). Des opérations basées sur la date et que nous voulons historiser ...

Citation:
Envoyé par orafrance Voir le message
Ceci étant dit, le déplacement entre partition à quand même un coût et dans le cas présent je pense que c'est juste le besoin fonctionnel qui est mal défini. On ne supprime pas (logiquement ou physiquement peu importe) une commande de la même manière qu'on ne supprime pas des factures.
Je suis entièrement d'accord.
Michel SALAIS est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 09/01/2008, 14h11   #14
Rédacteur/Modérateur
 
Avatar de orafrance
 
Inscription : janvier 2004
Messages : 15 861
Détails du profil
Informations personnelles :
Âge : 35

Informations forums :
Inscription : janvier 2004
Messages : 15 861
Points : 16 212
Points : 16 212
on est d'accord alors
orafrance est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h28.


 
 
 
 
Partenaires

Hébergement Web