Migration Access 2000 vers Oracle 9i

Migration Access 2000 vers Oracle 9i - SQL/NoSQL - Programmation

Marsh Posté le 13-09-2004 à 11:54:39    

Bonjour
J'ai une question tres simple a poser  
Existe t'il une sollution tres simple a mettre en oeuvre pour faire  
migrer une base access 2000 vers Oracle 9i.
Cela fait plusieurs semaines que j'explore le sujet en vain.
On me propose de telecharger par exemple des softs comme SQL porter ce que j'ai fait.
Comme il est en version eval le nombre de tables ne doit pas exceder 10
impossible pour mon appli.
J'ai Toad mais il ne sait pas le faire.
J'ai fait plusieurs postings -c'est vrai au mois d'aout quand tout le monde est en vaccance-
pas de reponses convaincante.
Pourtant je suis persuader que le probleme est basic.
Tout le monde a du y penser.
La version Oracle Migration WorkBench ne le fait pas chez moi.
Es ce un plugin qu'il faut rajouter???
Es ce un soft qu'il faut encore installer????
Es ce que quelqu'un a une idee svp
Cordialement.    

Reply

Marsh Posté le 13-09-2004 à 11:54:39   

Reply

Marsh Posté le 13-09-2004 à 11:56:55    

Une solution "barbare" pourrait être de créer ta base sous oracle, puis de l'ajouter comme source odbc à access et te servir d'access pour remplir la base oracle...


Message édité par skeye le 13-09-2004 à 11:57:05

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-09-2004 à 12:54:07    

Le bleme est que cette solution m'a ete propose il y a longtemps.
L'interet d'utiliser Oracle c'est de ne plus avoir a faire a Access.
Je te remercie quand meme pour ta proposition.
 

Reply

Marsh Posté le 13-09-2004 à 13:01:15    

mosstu126 a écrit :

Le bleme est que cette solution m'a ete propose il y a longtemps.
L'interet d'utiliser Oracle c'est de ne plus avoir a faire a Access.
Je te remercie quand meme pour ta proposition.


Dans ce cas tu peux essayer de générer des fichiers plats à-partir des données que tu as dans ta base access et utiliser SQL*Loader pour les charger dans ta base oracle...?


Message édité par skeye le 13-09-2004 à 13:01:29

---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 13-09-2004 à 15:13:53    

Tu veux faire quoi exactement ?
Migrer la base de données (pure et dure) ou migrer une appli Access vers Oracle Forms ?
 
Migrer la base de données, c'est pas bien compliqué.
Tu crées un DSN sur ta machine qui pointe vers Oracle. Tu lances Access, tu connectes Access à Oracle, et tu recopies les tables.
 
Si c'est pour migrer l'appli Access (formulaires, et états), t'as pas de solution. Tu dois réécrires on appli.
T'as qu'à en profiter pour passer ton appli à une version Web (Intranet) en ASP ou PHP, ou alors une appli stand alone en VB, Delphi ou C++. Evite d'utiliser Oracle Forms, parceque tu auras toujours le même problème si un jour vous passez d'Oracle à un autre SGBD.

Reply

Marsh Posté le 13-09-2004 à 22:13:58    

C'est tres simple ce que je veux faire c'est migrer une base de donnees
Access 2000 vers Oracle 9i. Surtout pas de formulaire ni d'etat c'est mes mon appli java qui s'enchargera par la suite.Jsp/Servlet Ejb etc...
Pour l'heure je m'en tiens seuleument a passer ma base de donnees
sur Oracle c'est tout.
J'ai pas encore trouve de solution  vraiment concluante

Reply

Marsh Posté le 14-09-2004 à 00:59:16    

mosstu126 a écrit :

C'est tres simple ce que je veux faire c'est migrer une base de donnees
Access 2000 vers Oracle 9i. Surtout pas de formulaire ni d'etat c'est mes mon appli java qui s'enchargera par la suite.Jsp/Servlet Ejb etc...
Pour l'heure je m'en tiens seuleument a passer ma base de donnees
sur Oracle c'est tout.
J'ai pas encore trouve de solution  vraiment concluante


on t'a déjà proposé 2 solutions (copie brute via access, et utilisation de SQL*Loader)...[:skeye]


---------------
Can't buy what I want because it's free -
Reply

Marsh Posté le 14-09-2004 à 11:21:05    

skeye a écrit :

on t'a déjà proposé 2 solutions (copie brute via access, et utilisation de SQL*Loader)...[:skeye]


Ben oui, j'en vois pas d'autre...
 
A la limite, pour re-créer la structure de la base, tu peux toujours utiliser un programme style "Power AMC", et faire "Reverse Engeneering", puis réexporter la structure vers Oracle.
 
Pour les données, y'a 3 solutions :
- SQL Loader
- Copie brute depuis Access via un pont ODBC
- Un Script VBS (ou tout autre langage) qui copie ligne par ligne chaque table :
 

Option Explicit
 
Dim cnxAcc, cnxOra
Set cnxAcc = CreateObject("ADODB.Connection" )
cnxAcc.Open "connextion à Access"
 
Set cnxOra = CreateObject("ADODB.Connection" )
cnxOra.Open "connextion à Oracle"
 
Dim rsAcc
Set rsAcc = CreateObject("ADODB.RecordSet" )
Set rsAcc.ActiveConnection = cnxAcc
 
dim Tables(x)
Tables(1) = "USER"
Tables(2) = "PRODUITS"
...
Tables(x) = "PRIX"
 
Dim i
Dim sql
Dim field
For i = lbound(Tables) to ubound(Tables)
    rsAcc.Open "select * from " & Tables(i)
    do while not rsAcc.EOF
       sql = "insert into " & Tables(i) & " ("
       For Each field in rs.Fields
           sql = sql & field.Name & ", " )
       Next
       sql = mid(sql, 1, len(sql, - 2) & " ) values ("
       For Each field in rs.Fields
           sql = sql & "'" & Raplce(field.Value, "'", "''" ) & "', " )
       Next
       sql = mid(sql, 1, len(sql, - 2) & " )"
       rsAcc.MoveNext
       cnxOra.Execute sql
    loop
    rsAcc.Close
Next
 
Set rsAcc = Nothing
 
cnxAcc.Close
Set cnxAcc = Nothing
 
cnxOra.Close
Set cnxOra = Nothing


 
Normalement, à un ou deux bugs près, ce script doit recopier sans problème les données des tables contenues dans le tableau "Tables" depuis Access vers Oracle.
Faire attention toutefois aux champs de type "TEXT" d'Access, il posent souvent problème quand on passe par ODBC. A tester.

Reply

Marsh Posté le 14-09-2004 à 21:17:32    

Je vais essayer de tester ca.
En tout cas je vous remercie beaucoup les gars pour votre assistance.

Reply

Marsh Posté le 20-12-2004 à 23:38:56    

J'ai un petit logiciel qui prépare les batch et les données pour reconstruire la base et ses données mais sans formulaire, macro ou modules d'Access.. voir sevydranih.com

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed