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 10/01/2011, 10h21   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 9
Points : 1
Points : 1
Par défaut Insert lignes sur 2 base différents.

Bonjour,

j' ai un souci majeur. Je vous explique. J' ai 2 base de données différentes ABC et DEF. La base de données ABC contient une table PERSONNE qui a comme champs :
NUMERO
MATRICULE
DATENAISS
DATEMODIF

La base de données DEF contient une table EMPLOYEE qui a comme champs :
IDENTIFIANT
MAT
NAISSANCE
DTMODIF

Le but est d'inserer de nouvelles occurences dans la table EMPLOYEE de la bdd DEF venant de la table PERSONNE de la bdd ABC.

Pour chaque ligne de la table PERSONNEL ayant DATEMODIF,
Insérer une occurrence dans EMPLOYEE avec
IDENTIFIANT = NUMERO
MAT = MATRICULE
NAISSANCE = DATENAISS
DTMODIF = DATEMODIF
Et donc, la requête doit utiliser un paramètre DATEMODIF.

Pouvez- vous m'aider svp?
Jeunenoob est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 12h43   #2
Membre Expert
 
Inscription : janvier 2010
Messages : 1 084
Détails du profil
Informations personnelles :
Localisation : France, Rhône (Rhône Alpes)

Informations forums :
Inscription : janvier 2010
Messages : 1 084
Points : 1 573
Points : 1 573
Bonjour

Qu'entendez-vous par
"Pour chaque ligne de la table PERSONNEL ayant DATEMODIF"

Voulez vous insérer les ligne pour lesquelles DATEMODIF à une certaine valeur ?

alors essayez ceci :
Code sql :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
 
INSERT INTO DEF.EMPLOYE (
  IDENTIFIANT,
  MAT,
  NAISSANCE,
  DTMODIF
)
SELECT 
  NUMERO,
  MATRICULE,
  DATENAISS,
  DATEMDIF
FROM ABC.PERSONNE
WHERE ABC.PERSONNE.DATEMODIF = 'votre_date_precise'

Si vous voulez plutôt insérer les lignes qui ont DATEMODIF de renseignée, remplacez le WHERE par :
Code sql :
1
2
 
WHERE ABC.PERSONNE.DATEMODIF IS NOT NULL
aieeeuuuuu est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/01/2011, 21h43   #3
Rédacteur
 
Homme Salim
Développeur et DBA Oracle
Inscription : octobre 2006
Messages : 872
Détails du profil
Informations personnelles :
Nom : Homme Salim
Localisation : Canada

Informations professionnelles :
Activité : Développeur et DBA Oracle

Informations forums :
Inscription : octobre 2006
Messages : 872
Points : 1 100
Points : 1 100
Salut,

Il faut utiliser un dblink.
http://psoug.org/reference/db_link.html
__________________
Publications: http://schelabi.developpez.com/
salim11 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 09h10   #4
Membre Expert
 
Avatar de Garuda
 
Homme Philippe CHIRCOP
Chef de projet
Inscription : juin 2007
Messages : 1 109
Détails du profil
Informations personnelles :
Nom : Homme Philippe CHIRCOP
Localisation : France

Informations professionnelles :
Activité : Chef de projet
Secteur : Bâtiment

Informations forums :
Inscription : juin 2007
Messages : 1 109
Points : 1 559
Points : 1 559
Le db_link n'est nécessaire que si les SCHEMAS sont dans 2 INSTANCES différentes !
Il faudrait préciser ce que tu entends par "base de données" (instance versus utilisateurs) !
__________________
Garuda गरूड
Brahmâ la Guerre et Vishnu la Paix

Oracle 10.2.0.4 - Forms6i patch 17 - Toad 11.1 - sharePoint 2010
Garuda est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 11/01/2011, 15h04   #5
Invité de passage
 
Inscription : janvier 2011
Messages : 9
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 9
Points : 1
Points : 1
Il sont dans la même instance, le dblink ne marche pas car il faudrait être dans différents instances.

La requête de aieeeeuuuuu fonctionne, merci beaucoup.
Jeunenoob 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 18h44.


 
 
 
 
Partenaires

Hébergement Web