|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2006 Messages : 113 ![]() |
Bonjour,
J’ai juste une question classique. Je veux copier des informations d’une base de données vers une table d’une autre base de données. Ce que j’ai proposé c’est de le faire en Java, en créant deux connexions et faire des selects dans l’une et des inserts (ou update dans l’autre). Si non, il y a quelqu'un qui m’a parlé de Sql loader (….). Ou si non, peut être on peut le faire directement par sql. J’aime bien si vous pouvez me proposer des solution et qui est la plus optimiser et celle la plus facile etc… Merci |
|
|
00
|
|
|
#2 | ||
![]() Inscription : septembre 2004 Messages : 626 ![]() |
Bonjour,
Tu peux regarder du cote de la commande sqlplus COPY : Code :
Laly.
__________________
In the heart of the truly greats, perfection is never achieved but endlessly pursued. Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...) |
||
|
|
00
|
|
|
#3 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2006 Messages : 113 ![]() |
En faite la commande Copy ne marche que pour copier une table dans une autre qui a les mêmes noms de colonnes. Dans mon cas je veux copier des colonnes d’une table vers une autre qui n’as pas les mêmes noms de colonnes. En tous cas avec une commande comme celle là, une table de 200 millions de lignes ne va pas vraiment tenir dans ce genre de copies. Je pense que l’utilisation d’un transfert fichier en utilisant un SQL Loader sera la meilleure.
|
|
|
00
|
|
|
#4 |
![]() Inscription : septembre 2004 Messages : 626 ![]() |
Bonjour,
Pas du tout, tu peux spécifier les colonnes dans la table de destination. Par défaut tu as un commit a chaque ligne, mais tu peux le changer avec l'option COPYCOMMIT de SQL*Plus. Pour moi y a pas plus simple pour copier des données entre deux bases, apres c'est toi qui voit... Laly.
__________________
In the heart of the truly greats, perfection is never achieved but endlessly pursued. Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...) |
|
|
00
|
|
|
#5 |
|
Nouveau Membre du Club
![]() Inscription : juillet 2006 Messages : 113 ![]() |
Bonjour,
J’ai décidé enfin de compte de le faire en JDBC. J’ai juste un souci. Comment faire pour copier la table en même temps que d’autre processus sont entrain d’insert, update ou supprime des données dans la base, sans que leurs requêtes soit perdus. Autrement dit, comment on peut faire des verrous on base de donner Oracle 9i. Sachant que je vais faire plusieurs requêtes SQL pour copier les tables de la base de données. Je veut qu’avant d’exécuter tous mes requêtes, tous les requêtes extérieur envoyées par d’autres utilisateurs, restent en attentes. (Un Verrouillage niveau Oracle/SQL et pas niveau Java |
|
|
00
|
|
|
#6 | |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Citation:
Pour les verrous cherche Select ... For Update ou Lock Table... Mais la vrai question est "a tu vraiment besoin de faire ça" |
|
|
|
00
|
|
|
#7 | |||
|
Nouveau Membre du Club
![]() Inscription : juillet 2006 Messages : 113 ![]() |
Citation:
Si non, pour avoir une bonne idée sur ce que je veux faire. Je veut faire un programme qui à chaque heur mis à jour la table d’une autre qui est sur une autre base de données.(donc à chaque fois il ne faut qu’ajouter que les mise à jour (UPDATE, INSERT,DELETE). N’oubli surtout pas que je suis très intéresser pour savoir comment utiliser la commande ‘COPY’ et de me donnée un exemple (car j’ai pas vraiment trouvé un bon sur le net –juste des exemple ridicule-) Je vais juste mettre un exemple que j’ai compris d’un tutorial, et j’aime bien si vous pouvez me dire s’il est correcte ou pas. Je suppose que j’ai les tables suivantes : TbSource (Nu :NUMBER, Nom : VARCHAR, YearsOld : TIMESTAMP) TbDestination (Numero : NUMBER, Age: TIMESTAMP) Code :
(Si ce que j’ai écris est correct, j’aime bien si vous pouvez me données une solution pour les TIMESTAMP car ils ne sont pas gère par la commande COPY |
|||
|
|
00
|
|
|
#8 | |
|
Expert Confirmé Sénior
![]() ![]() Marius NituIngénieur développement logiciels Inscription : octobre 2007 Messages : 3 319 ![]() |
Citation:
|
|
|
|
00
|
|
|
#9 | |||
![]() Inscription : septembre 2004 Messages : 626 ![]() |
Salut
Au niveau du timestamp, je pense pas que ce soit bloquant, tu peux faire une conversion : Code :
Citation:
http://www.psoug.org/reference/materialized_views.html L'exemple "Complete Refresh" ou peut etre meme que tu pourras faire propager les modifs en temps reel avec un refresh fast... Laly.
__________________
In the heart of the truly greats, perfection is never achieved but endlessly pursued. Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...) |
|||
|
|
00
|
Copyright © 2000-2012 - www.developpez.com