|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 77 ![]() |
Bonjour,
J'ai sur mes tables un trigger pour l'auto_increment: Code :
Code :
Existe t'il un moyen de passer outre ce probleme ? S'agit il d'un mauvais emploi de :NEW ? Le but etant d'avoir deux base totalement synchronisées, existe t'il un autre moyen d'effectuer cela ? |
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
pourquoi ne pas utiliser une vue matérialisée ?
|
|
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 77 ![]() |
parceque je ne sais pas comment faire...
je me renseigne, mais si tu as le temp de m'en dire un peu plus... |
|
|
00
|
|
|
#4 |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Indémndamment du problème, si l'application est modifiable alors il faut enlever le premier trigger et utiliser la séquence dans l'application directement. D'un autre côté, le deuxième trigger doit être after et non before.
|
|
|
00
|
|
|
#5 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
|
|
#6 |
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 77 ![]() |
Meme avec le deuxieme trigger en AFTER, ca provoque une erreur de table mutante...
|
|
|
00
|
|
|
#7 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
c'est pas le DBLink qui serait erroné par hasard ? Parce que là ça réagit comme si C_PORTFOLIO@HISTOVOT.HEGOA5 et C_PORTFOLIO étaient les mêmes tables
|
|
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 77 ![]() |
Merci beaucoup.
En fait tu m'as fais remarqué que dans mon script de creation de la table histovot, j'avais laissé les triggers de replication... Shame on me shame on me ------------ Autre question: Existe t'il des outils de developpement gratuits pour oracle avec une interface graphique ?? Parceque passer sans cesse d'un editeur de texte a la ligne de commande me provoque souvent de erreurs du genre de celle ci... |
|
|
00
|
|
|
#9 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
non, pas d'éditeur graphique au sens AGL. Pour revenir au souci, je persiste à t'encourager à te documenter sur les vues matérialisées (materialized view ou snapshot).
|
|
|
00
|
|
|
#10 |
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 77 ![]() |
oui c'est ce que je fais mais les courts temps de developpement qui me sont imposé me forcent parfois a prendre des solutions batardes mais qui marche au niveau de mon patron (qui, comme beaucoup de patrons y connais rien et se fout que ce soit mal foutu du moment que ca marche)...
Quelques questions sur les vues materialisées. J'ai compris que l'on peut synchroniser la vue au commit de la table observée. Mais comment au meme moment deverser les données de la vue dans ma base distante ? Avec un trigger sur la vue ? |
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Si ta base distante à besoin d'être mise à jour ça commence à devenir plus compliqué que ta méthode. Sinon, tu remplaces la table distante par la vue matérialisée
c'est de la réplication bi-directionnelle ? (modification de la table distante répliqué en local aussi ?) |
|
|
00
|
|
|
#12 |
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 77 ![]() |
non, il s'agit d'un replication uni-directionnelle...
En fait la base distante est une base historique devant etre identique a la base de production, elle ne seras pas mise a jour directement, si ce n'est par mes triggers de replication. Au sujet des vues, j'ai lu qu'il fallait les utiliser avec parcimonie. Sachant que j'ai une 15 aine de tables a repliquer est ce judicieux d'utiliser cette methode ? Sinon, pourrais tu me donner un morceau de code pour comprendre se remplacement et quand le declencher ... |
|
|
00
|
|
|
#13 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
http://www.developpez.net/forums/d25258/bases-donnees/oracle/commit-on-refresh/
j'vois pas pourquoi faudrait limiter leur usage ![]() t'as rien à faire d'autre que supprimer ta table historique et créer la vue matérialisée à la place avec l'option REFRESH ON COMMIT pour qu'elle soit mise à jour à chaque modif de la source. |
|
|
00
|
|
|
#14 |
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 77 ![]() |
le probleme viens du client en lui meme qui n'y connais pas grand chose mais veux absoluement une vraie base historique distante.
Comme il y connais rien, je pense qu'il seras pas d'accord d'avoir une vue materialisée. il ne jure que par les base de bonnées.... ( je sais c'est con ta methode as l'air au point) |
|
|
00
|
|
|
#15 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
sauf que c'est une vraie base de données. Une vue matérialisée c'est une table (contrairement à ce que le nom indique
vue matérialisée = vue contenant les données est-ce plus clair ?
|
|
|
00
|
|
|
#16 |
|
Invité régulier
![]() Inscription : octobre 2006 Messages : 77 ![]() |
oui pour moi ca l'est maintenant.
Mais expliquer ca a un responsable de service qui ne veux pas perdre la face et avouer qu'il nage plus que es subalternes, c'est totalement impossible. P'tain je deteste la politique d'entreprise !! Mais merci, ca me serviras dans mes futurs developpement. |
|
|
00
|
|
|
#17 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
tu lui dis rien sur la technique puisque de toute façon c'est pas son problème. Tu dis juste que tu as répondu au besoin au mieux
|
|
|
00
|
|
|
#18 |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Ca sort peut-être du cadre de la question mais il y a d'autres solutions valables comme par exemple l'utilisation des bases standby (éventuellement logiques)
|
|
|
00
|
|
|
#19 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
malheureusement, les standby logique avant la 10g c'est plus l'arlésienne qu'autre chose
quand à la standby physique, ici il parle de 15 tables à répliquer, ça parait donc une peu cher comme solution |
|
|
00
|
|
|
#20 | |
|
Membre éprouvé
![]() Inscription : décembre 2007 Messages : 354 ![]() |
Citation:
Les 15 tables sont peut être toute sa base. La deuxième base dans laquelle nous répliqons possède-t-elle d'autres tables? Quelle est l'objectif de la réplication? C'est la protection? C'est la consultation à part? N'oublions pas que de toute façon, il y a déjà deux bases actuellement Une phrase laissait entendre que les deux bases doivent être identiques ... |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com