Précédent   Forum des professionnels en informatique > Bases de données > Oracle
Oracle Forum Oracle : le serveur, les outils, ... Voir F.A.Q Oracle Tutoriels Oracle
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 22/03/2011, 22h23   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 44
Points : 2
Points : 2
Par défaut Vue matérialisée

Quelle vue système (ou table) ORACLE consulte pour savoir si la table qu'il maj (insert ou update ..) a une table de log à mettre à jour ?

Je pose cette question car j'essaye de faire un update sur ma table qui "avait" une VM que j'ai dropé (j’ai dropé la VM et la LOG avec TOAD) mais ORACLE cherche à mettre à jour une log qui n'existe plus et donc le traitement plante !!
olap_2001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 10h03   #2
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
Essaye de faire un explain_mv pour comprendre ce qui manque!

Code :
1
2
3
4
DROP TABLE MV_CAPABILITIES_TABLE;
@?/rdbms/admin/utlxmv
exec dbms_mview.explain_mview('TA_VUE_MAT')
SELECT * FROM MV_CAPABILITIES_TABLE;
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 15h31   #3
Invité de passage
 
Inscription : janvier 2011
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 44
Points : 2
Points : 2
Merci pour ta réponse, mais je n'ai aucune vue matérialisée, ni table de log mais ORACLE cherche à MAJ la LOG à chaque LMD sur ma table !!!! il reste surement des trace quelque part

Code :
1
2
3
4
SQL> SELECT MVIEW_NAME, QUERY ,UPDATABLE, REFRESH_MODE, REFRESH_METHOD, BUILD_MODE, FAST_REFRESHABLE
  2  FROM user_mviews;
 
aucune ligne sélectionnée
olap_2001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 16h16   #4
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
Citation:
Envoyé par olap_2001 Voir le message
mais ORACLE cherche à MAJ la LOG à chaque LMD sur ma table
Oracle mets à jour le materialized view log sur ta table


Citation:
Envoyé par olap_2001 Voir le message
mais je n'ai aucune vue matérialisée, ni table de log
mais tu n'as pas de table de log...

En bref ça veut dire quoi?
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 16h17   #5
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
Citation:
Envoyé par olap_2001 Voir le message
donc le traitement plante !!
avec quel message ?
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 16h42   #6
Invité de passage
 
Inscription : janvier 2011
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 44
Points : 2
Points : 2
maintenant j'ai une nouvelle erreur Oracle lorsque je veux mettre à jour ma table .

ORA-00600: internal error code, arguments: [kntgslm], [0], [], [], [], [], [], []

as-tu une idée ?
olap_2001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 17h13   #7
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
c'est un bug, il te faut dropper le materialized view log

voici la solution selon la note 763497.1

Citation:
Cause
Running the following query shows a trigflag of 2 which means that a materialized view log should
exist on the object.
select trigflag, OBJ# from tab$ where obj# = (select object_id from dba_objects
where owner = 'SCOTT' and object_name = 'TEST_MV' and object_type = 'TABLE');

In this case the materialized view log, mlog$_test_mv did not exist.
Solution
To implement the solution, please execute the following steps:

1. If the materialized view log exists, attempt to drop the log and then drop the mview.
connect scott/tiger
drop materialized view log on test_mv;
drop materialized view test_mv;

2. If step 1 fails with an ORA-12002: there is no materialized view log on table,
attempt to create a materialized view log on the materialized view and then drop the mview.
connect scott/tiger
create materialized view log on test_mv;
drop materialized view log on test_mv;
drop materialized view test_mv;
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 18h25   #8
Invité de passage
 
Inscription : janvier 2011
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 44
Points : 2
Points : 2
merci pour tes réponses mais ca ne marche pas

je pense que je dois réinitialiser mon schéma avec le dump de prod.

si tu as une meilleur solution je suis preneur
olap_2001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/03/2011, 20h01   #9
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
quel est le contenu de all_mview_logs?

Code :
1
2
3
4
5
6
7
8
9
SQL> SELECT LOG_OWNER,MASTER FROM all_mview_logs;
 
LOG_OWNER                      MASTER
------------------------------ ------------------------------
SCOTT                          EMP
 
SQL> DROP materialized VIEW log ON SCOTT.emp;
 
Materialized VIEW log dropped.
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 13h36   #10
Invité de passage
 
Inscription : janvier 2011
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 44
Points : 2
Points : 2
aucune ligne dans all_mview_logs
olap_2001 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/03/2011, 16h16   #11
Expert Confirmé Sénior


 
Avatar de laurentschneider
 
Homme Laurent Schneider
Administrateur de base de données
Inscription : décembre 2005
Messages : 2 925
Détails du profil
Informations personnelles :
Nom : Homme Laurent Schneider
Localisation : Suisse

Informations professionnelles :
Activité : Administrateur de base de données
Secteur : Finance

Informations forums :
Inscription : décembre 2005
Messages : 2 925
Points : 4 547
Points : 4 547
et puis ça
Code :
1
2
3
SELECT u.name,o.name 
FROM sys.tab$ t JOIN sys.obj$ o USING (obj#) join sys.user$ u on owner#=user# 
WHERE trigflag=2;
__________________
Mon blog : laurentschneider.com
Mon livre : Advanced Oracle SQL Programming
laurentschneider est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/03/2011, 13h40   #12
Invité de passage
 
Inscription : janvier 2011
Messages : 44
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 44
Points : 2
Points : 2
je te remercie pour ton aide.

en fait c'est de ma faute car au lieu d'écrire :

drop materialized view log on "MA TABLE" pour supprimer MV LOG, j'ai écris :

Drop table MLOG$_TOTO

et donc j'ai supprimé la table et pas la materialized view log .
olap_2001 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 23h38.


 
 
 
 
Partenaires

Hébergement Web