Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1696 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Transfert de données DB2/400 vers Oracle

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Transfert de données DB2/400 vers Oracle

n°2033605
lolobreizh
Posté le 02-11-2010 à 15:03:24  profilanswer
 

Bonjour,
 
Je cherche à transférer le contenu d'une table DB2/400 vers Oracle 11g.
J'ai essayé de faire ça en utilisant le driver ODBC (iSeries Access ODBC Driver) et en déclarant la base AS400 dans Oracle via ce driver et le tnsnames.ora :
 
AS400  =
  (DESCRIPTION=
    (ADDRESS = (PROTOCOL = tcp)(HOST = AS400server)(PORT = 1521))
    (CONNECT_DATA = (SID=as400))
    (HS=OK)
  )  
 
ça marche nickel pour toutes les tables sauf celles contenant des champs binaires.
Pour tous les enregistrements dont la taille du champ binaire est supérieur à 32ko, il est tronqué à 32ko à l'insert.
 
Et ce pour les 2 requêtes suivantes :
 

Code :
  1. insert into <owner>.<table> select * from <librairie>.<table>@as400;


 

Code :
  1. declare cursor c1 is
  2.     select * from <librairie>.<table>@as400;
  3. begin
  4.     for c1_rec in c1 loop
  5.         insert into <owner>.<table> values c1_rec;
  6.     end loop;
  7.     commit;
  8. end;
  9. /


 
Avez-vous une idée pour résoudre ce souci ?
Merci d'avance pour votre aide
 
 
 

mood
Publicité
Posté le 02-11-2010 à 15:03:24  profilanswer
 

n°2033616
E-Nyar
I ain't no nice guy after all
Posté le 02-11-2010 à 15:30:31  profilanswer
 

La plupart des drivers ODBC sont par défaut limités à 32k pour du BLOB.  
 
Regarde du côté du paramètre SendStreamAsBlob pour le driver ODBC et les fonctions de traitement des BLOB côté Oracle.
 
Et sinon pourquoi faire ça a la main et ne pas utiliser le Migration Workbench d'Oracle ?  
http://wiki.oracle.com/page/Oracle+Migration+Workbench


---------------
Don't fuck me, I'm anonymous.
n°2033617
lolobreizh
Posté le 02-11-2010 à 15:33:43  profilanswer
 

Merci pour ta réponse.
 
On ne peut pas utiliser Migration Workbench car notre version AS400 n'est pas copatible :(

n°2033618
E-Nyar
I ain't no nice guy after all
Posté le 02-11-2010 à 15:37:45  profilanswer
 

Euh, c'est quelle version parce que de mémoire, ça supporte jusqu'à la V4R3 (qui date des années 2000 voire moins)


---------------
Don't fuck me, I'm anonymous.
n°2033620
lolobreizh
Posté le 02-11-2010 à 15:43:18  profilanswer
 

Dans la configuration de la datasource ODBC, il y a bien en effet 2 options :
 
- Large objects (LOB) threshold (KB) (Default : 32)
- Use blocking with a fetch of 1 row (Default : active)
           - Record blocking size (KB) (Default : 32)
 
Je vais tester ça dès que possible et mettrais à jour le sujet à RESOLU si c'est le cas.
Merci encore

n°2033622
lolobreizh
Posté le 02-11-2010 à 15:51:31  profilanswer
 

E-Nyar a écrit :

Euh, c'est quelle version parce que de mémoire, ça supporte jusqu'à la V4R3 (qui date des années 2000 voire moins)


Nous sommes sur une V5R3 et OMWB s'est arrêté à la V4R5.
Et pour l'instant, leur nouvel outil qui remplace OMWB ne supporte pas DB2 400

n°2033623
E-Nyar
I ain't no nice guy after all
Posté le 02-11-2010 à 15:53:16  profilanswer
 

Sinon, si ça ne marche pas dans ce sens, peut-être essayer de prendre le problème de l'autre côté..

 

Plusieurs solutions pour les connections DB2/400 <--> Oracle:

 

Côté Oracle :
1) Oracle Transparent Gateway for DB2/400
--tourne sur les iSeries
--gère les accès  Oracle --> DB2/400
--TCP/IP

 

2) Oracle Transparent Gateway for DRDA
--tourne sur un hôte (Windows, UNIX, Linux, ect)
--gères les accès Oracle --> DB2/400
--utilises le SNA ou le TCP/IP

 

3) Oracle Access Manager for AS/400
--tourne sur les iSeries
--Gère les accès DB2/400 --> Oracle
--Utilises le TCP/IP

 

4) Oracle Generic Connectivity
--tourne côté Oracle
--Gère les accès Oracle --> DB2/400
--utilises les drivers ODBC ou OLEDB pour accéder à DB2/400

 

Côté IBM :

 

1) DB2 Information Integrator (ex DataJoiner)
--tourne sur un système hôte (non-iSeries)
--gère les accès  DB2/400 --> Oracle
--TCP/IP


Message édité par E-Nyar le 02-11-2010 à 15:58:38

---------------
Don't fuck me, I'm anonymous.
n°2033719
lolobreizh
Posté le 03-11-2010 à 07:38:19  profilanswer
 

Il ne me reste plus qu'à étudier tout ça
 
Merci pour ton aide

n°2033810
E-Nyar
I ain't no nice guy after all
Posté le 03-11-2010 à 15:01:48  profilanswer
 

De rien et j'espère que tu vas t'en sortir :jap:


---------------
Don't fuck me, I'm anonymous.

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  Transfert de données DB2/400 vers Oracle

 

Sujets relatifs
Importer données d'un autre site sur son site webcopier des cellules d'une feuille vers une feuille spécifique
Oracle - pas de résultat sur poste client[Oracle] Problème de conversion automatique number->varchar2
Un serveur Oracle ou plusieurs ?probleme soft interrupt pour 'C' vers 'C++'
transfert de fichier grâce a OBEX?Redirection vers mon adresse ip
[resolu][PHP & Oracle] Champs DateTime : recuperer la date ET l'heureoracle foreign key
Plus de sujets relatifs à : Transfert de données DB2/400 vers Oracle


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR