Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour 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 28/02/2008, 17h15   #1
Futur Membre du Club
 
Inscription : février 2008
Messages : 51
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 51
Points : 16
Points : 16
Par défaut Erreur : impossible de selectionner les champs distants

Bonsoir ,

lorsque j'essaie d'executer mon trigger :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
CREATE OR REPLACE TRIGGER trigger_champs BEFORE UPDATE OR INSERT ON PERSONNES
FOR EACH ROW
DECLARE  diff VARCHAR(20);
BEGIN 
IF ( :new.diffphoto = 1 ) then
diff:='O'; 
else diff:='N';
end IF;
IF (id_existe(substr(:new.id_personne,1,(length(:new.id_personne)-12))) < 1) then
INSERT INTO asynchrone@exportSynchrone (stockage_photo ,diffphoto ,date_maj)
VALUES( :new.stockage_photo ,diff  ,NVL( :new.date_maj, NVL( :new.dat_creation,
'01/01/1999')) );  
else UPDATE asynchrone@exportSynchrone SET stockage_photo =
:new.stockage_photo ,diffphoto = diff  ,date_maj = NVL( :new.date_maj, NVL(
:new.dat_creation, '01/01/1999')) ; 
end IF ; 
END ;
on m'affiche cette erreur que je sais pas comment gerer:
Code :
1
2
3
PL/SQL: SQL Statement ignored
PL/SQL: ORA-22992: impossible d'utiliser les indicateurs
d'emplacement LOB sÚlectionnÚs dans des TABLES distantes
j'ai visité plein de sites, on conseille de creer une vue de la table distante , or cette soluce ne me convient pas vu la taille de ma table distante...c'est pas evident...
any suggestions?
xanthie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 11h20   #2
Expert Confirmé Sénior
 
Avatar de mnitu
 
Homme Marius Nitu
Ingénieur développement logiciels
Inscription : octobre 2007
Messages : 3 319
Détails du profil
Informations personnelles :
Nom : Homme Marius Nitu
Localisation : France, Marne (Champagne Ardenne)

Informations professionnelles :
Activité : Ingénieur développement logiciels
Secteur : High Tech - Éditeur de logiciels

Informations forums :
Inscription : octobre 2007
Messages : 3 319
Points : 5 837
Points : 5 837
Citation:
ORA-22992: cannot use LOB locators selected from remote tables
Cause: A remote LOB column cannot be referenced.
Action: Remove references to LOBs in remote tables.
mnitu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 11h33   #3
Futur Membre du Club
 
Inscription : février 2008
Messages : 51
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 51
Points : 16
Points : 16
comment cela ? je n'ai pas bien saisi..
xanthie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 11h40   #4
Futur Membre du Club
 
Inscription : février 2008
Messages : 51
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 51
Points : 16
Points : 16
au faite , merci de m'avoir repondu , j'ai resolu le prob , enfin lorsque j'ai réecrit la procedure bizarrement tout marche bien , enfin on m'affiche plus l'erreur precedente , la nouvelle c'est celle la :
Code :
1
2
3
4
5
6
PL/SQL: SQL Statement ignored
PL/SQL: ORA-00933: la commande SQL ne se termine pas correctement
PLS-00103: Symbole "=" rencontrÚ Ó la place d'un des symboles
suivants :
:= . ( @ % ;
Symbole ":= insÚrÚ avant "=" pour continuer.
et voila mon trigger :
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
CREATE OR REPLACE TRIGGER trigger_champs BEFORE UPDATE OR INSERT ON PERSONNES 
FOR EACH ROW
DECLARE diff VARCHAR(10);
compt INTEGER;
BEGIN
 SELECT count(id_personne) INTO compt FROM asynchrone@exportSynchronewhere id_personne= :new.id_personne ;
IF ( :new.diffphoto = 1) then diff='O';
else diff :='N';
end IF;
 
  IF (compt < 1 ) then 
INSERT INTO asynchrone@exportSynchrone (id_personne,diffphoto ,date_maj)  VALUES (:new.id_personne,diff,NVL(:new.date_maj, NVL(:new.dat_creation,'01/01/1999')) );  
 
else 
UPDATE asynchrone@exportSynchrone SET diffphoto = diff,date_maj = NVL( :new.date_maj, NVL( :new.dat_creation,'01/01/1999')) ; 
end IF ; 
 
END ;
xanthie est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/02/2008, 11h46   #5
Futur Membre du Club
 
Inscription : février 2008
Messages : 51
Détails du profil
Informations forums :
Inscription : février 2008
Messages : 51
Points : 16
Points : 16
Merci mnitu de m'avoir repondu
je me suis trompée au niveau d'une affectation
xanthie 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 08h13.


 
 
 
 
Partenaires

Hébergement Web