Transfert de données DB2/400 vers Oracle - SQL/NoSQL - Programmation
Marsh Posté le 02-11-2010 à 15:30:31
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
Marsh Posté le 02-11-2010 à 15:33:43
Merci pour ta réponse.
On ne peut pas utiliser Migration Workbench car notre version AS400 n'est pas copatible
Marsh Posté le 02-11-2010 à 15:37:45
Euh, c'est quelle version parce que de mémoire, ça supporte jusqu'à la V4R3 (qui date des années 2000 voire moins)
Marsh Posté le 02-11-2010 à 15:43:18
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
Marsh Posté le 02-11-2010 à 15:51:31
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
Marsh Posté le 02-11-2010 à 15:53:16
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
Marsh Posté le 03-11-2010 à 07:38:19
Il ne me reste plus qu'à étudier tout ça
Merci pour ton aide
Marsh Posté le 03-11-2010 à 15:01:48
De rien et j'espère que tu vas t'en sortir
Marsh Posté le 02-11-2010 à 15:03:24
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 :
Avez-vous une idée pour résoudre ce souci ?
Merci d'avance pour votre aide