IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MS SQL Server Discussion :

Conversion de base vers Oracle


Sujet :

MS SQL Server

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 44
    Points
    44
    Par défaut Conversion de base vers Oracle
    Bonjour,

    je désire utiliser la base AdventureWorks sous Oracle 10.2g pour réaliser un comparatif d'outils de tuning.
    J'ai exporté les scripts de création de la base pour la recréer sous Oracle. Cependant, j'aimerais savoir s'il est possible d'exécuter tel quel ce script ou y-a-t'il des conversions à faire entre les différents types de données ou contraintes .

    Extrait :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
     
    CREATE TABLE dbo.AWBuildVersion ( 
    	SystemInformationID	tinyint IDENTITY(1,1) NOT NULL,
    	Database Version   	nvarchar(25) NOT NULL,
    	VersionDate        	datetime NOT NULL,
    	ModifiedDate       	datetime NOT NULL DEFAULT (getdate()) 
    	)
    GO
    CREATE TABLE Person.Address ( 
    	AddressID      	int IDENTITY NOT NULL,
    	AddressLine1   	nvarchar(60) NOT NULL,
    	AddressLine2   	nvarchar(60) NULL,
    	City           	nvarchar(30) NOT NULL,
    	StateProvinceID	int NOT NULL,
    	PostalCode     	nvarchar(15) NOT NULL,
    	rowguid        	uniqueidentifier ROWGUIDCOL NOT NULL DEFAULT (newid()),
    	ModifiedDate   	datetime NOT NULL DEFAULT (getdate()) 
    	)
    GO
    CREATE TABLE Person.AddressType ( 
    	AddressTypeID	int IDENTITY NOT NULL,
    	Name         	Name NOT NULL,
    	rowguid      	uniqueidentifier ROWGUIDCOL NOT NULL DEFAULT (newid()),
    	ModifiedDate 	datetime NOT NULL DEFAULT (getdate()) 
    	)
    GO
     
    ..........

    Merci d'avance

  2. #2
    Rédacteur
    Avatar de WOLO Laurent
    Homme Profil pro
    Architecte de base de données
    Inscrit en
    Mars 2003
    Messages
    2 741
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : Congo-Brazzaville

    Informations professionnelles :
    Activité : Architecte de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 2 741
    Points : 4 414
    Points
    4 414
    Par défaut
    Vous aurez déjà un problème de schema.
    Vous pouvez déjà noter que vous allez utiliser nvarchar2 aulieu de nvarchar.
    Bref, cherche les comparatifs des fonctionalités. Le site de sqlpro t'y sera d'un grand recours.

  3. #3
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Bonjour,

    Une bonne idée est d'utiliser un outil de modélisation (p.ex. la version démo d'Embarcadero ER/Studio). Tu récupères le modèle par reverse engineering, génères le modèle logique, regénères le modèle physique pour Oracle, et crées ta base.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 44
    Points
    44
    Par défaut
    Jviens d'utiliser Embarcadero et c'est pas mal effectivement mais ça me fait un modèle ultra-light et en plus avec des types non conformes pour ma base Oracle 10g.2.
    Y-a-t'il une autre solution ou dois-je abandonner, et dans ce cas, où pourrais-je trouver des bases SQL assez conséquentes pour effectuer mes tests ?
    Merci

  5. #5
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Tu n'arrives pas générer la base avec le modèle de ER/Studio ?
    Tu peux générer le script de créaction des tables, éditer à la main les types incorrects, et lancer le script.
    Ensuite, utiliser l'assistant d'import/Export de SQL Server pour transférer les données.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 44
    Points
    44
    Par défaut
    Si j'ai réussi mais il me semble très chétif par rapport à la base AdventureWorks.

    Comme je l'ai déja dit, j'ai déjà généré un script dont je n'ai publié qu'un infime extrait car le fichier comporte plusieurs milliers de ligne.
    Pour les types de données, le principal souci est la propriété IDENTITY(1,1) qui n'est reproductible sous ORACLE qu'en créant un trigger à chaque fois.
    Cela devient donc très fastidieux de mettre ce gros fichier à jour.
    Y-a-t'il un générateur de script dédié à ORACLE ? Ou dois-je me résigner à faire ces manipulations à la main ?
    Merci

  7. #7
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Je ne savais pas qu'Oracle n'avait pas d'auto incréments. En effet, le trigger est la solution selon ce site :
    http://www.oracle-base.com/articles/8i/AutoNumber.php

    Il doit certainement y avoir des générateurs de code pour Oracle.

    Tu auras plus de chance d'avoir une réponse intéressante sur le point en postant la question dans le forum Oracle.

    Apparemment, il y a un concept de sequences :
    http://www.techonthenet.com/oracle/sequences.php

    Ici de la doc pour aller d'Oracle vers SQL, ça te donne peut-être des idéées pour faire l'inverse
    http://www.microsoft.com/technet/sol.../or2sql06.mspx

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    117
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2005
    Messages : 117
    Points : 44
    Points
    44
    Par défaut
    OK.
    Mais autre souci, si jamais j'arrive récupérer la structure de la base en SQL.
    Comment récupérer le jeu de données lui-même qui comporte plus de 18 000 lignes?
    Merci

  9. #9
    Expert confirmé
    Avatar de rudib
    Homme Profil pro
    Fakir SQL Server & NoSQL
    Inscrit en
    Mai 2006
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Fakir SQL Server & NoSQL

    Informations forums :
    Inscription : Mai 2006
    Messages : 2 573
    Points : 4 043
    Points
    4 043
    Par défaut
    Depuis Oracle je ne sais pas, sinon en passant par des fichiers plats ou un sscript qui génère des insert. Sinon, depuis SQL Server, tu peux essayer l'assistant d'export de données.

Discussions similaires

  1. [Oracle] Commandes php-Oracle (conversion de msql vers oracle)
    Par loviso dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 16/11/2012, 17h09
  2. conversion base de données sql server 7 vers Oracle 9
    Par hottnikks_79 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 25/03/2008, 13h48
  3. conversion donnees excel vers oracle
    Par edzodzinam dans le forum Oracle
    Réponses: 3
    Dernier message: 22/08/2006, 10h24
  4. Importation d'une base de donnée sql server vers oracle
    Par delphy456 dans le forum MS SQL Server
    Réponses: 9
    Dernier message: 17/01/2006, 14h44
  5. migration d'une base de données access vers oracle
    Par narjisovish dans le forum Migration
    Réponses: 2
    Dernier message: 08/09/2005, 10h27

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo