Exporter des tables de SQL Server à être importés vers Oracle 10g
Je suis en train d'exporter quelques tables à partir de SQL Server 2005, puis de créer les tables et les remplir dans Oracle.
J'ai environ 10 tables, variant de 4 colonnes jusqu'à 25. Je n'utilise pas de contraintes/touches donc, ce devrait être assez simple.
Tout d'abord, j'ai généré des scripts pour obtenir la structure de la table, puis modifiés pour les rendre conformes à Oracle syntaxe des normes (ie changé le type nvarchar à varchar2)
Ensuite, j'ai exporté les données à l'aide de Serveurs SQL assistant d'exportation qui a créé un csv fichier plat. Cependant mon principal problème est que je ne peux pas trouver un moyen de forcer SQL Server à double citer les noms de colonne. Un de mes colonnes contient des virgules, donc à moins que j'arrive à trouver une méthode pour SQL server pour citer les noms de colonne, puis je vais avoir de la difficulté quand il s'agit de l'importation de ce.
Aussi, vais-je la voie difficile, ou est-il un moyen plus facile de faire cela?
Grâce
EDIT: En citant je suis en référence à citer les valeurs de colonne du fichier csv. Par exemple, j'ai une colonne qui contient les adresses comme
101 De La Rue Haute, Sometown, Certains
comté, PO5TC053
Sans le modifier à la suivante, il causerait des problèmes lors du chargement de la CSV
"101 De La Rue Haute, Sometown, Certains
comté, PO5TC053"
OriginalL'auteur Jimmy | 2009-11-13
Vous devez vous connecter pour publier un commentaire.
Après avoir regardé quelques options avec SQLDeveloper, ou à essayer manuellement à l'exportation/l'importation, j'ai trouvé un utilitaire sur SQL Server management studio qui permet d'obtenir les résultats souhaités, et est facile à utiliser, procédez de la manière suivante
OriginalL'auteur Jimmy
Utiliser le SQLDeveloper outils de migration
Je pense citant les noms de colonne dans oracle est quelque chose que vous ne devriez pas utiliser. Il provoque toutes sortes de problèmes.
OriginalL'auteur Robert Merkwürdigeliebe
Que Robert a dit que je ferais conseille fortement contre citant les noms de colonne. Le résultat est que vous auriez à les citer non seulement lors de l'importation de données, mais aussi chaque fois que vous le souhaitez pour référence la colonne dans une instruction SQL - et oui, cela signifie probablement dans le code de votre programme. Bâtiment SQL devient un total de tracas!
De ce que vous écrivez, je ne suis pas sûr si vous faites référence à des noms de colonnes ou les données de ces colonnes. (SQLServer vraiment une virgule dans la colonne nom? Je serais vraiment surpris si il y avait une bonne raison à cela!) Citant le contenu de la colonne doit être fait pour n'importe quelle chaîne-comme des colonnes (même si j'ai trouvé que les autres personnages fonctionnent généralement mieux que la nécessité de "s'échapper" citations devient un autre problème). Si vous souhaitez exporter en CSV qui devrait être une option .. mais je ne suis pas familier avec l'assistant d'exportation.
Une autre idée pour déplacer les données (selon l'ampleur de votre projet) serait d'utiliser un ETL/EAI outil. J'ai joué un peu avec le Pentaho suite et de leurs Bouilloire composant. Il offre une bonne gamme d'options pour déplacer des données d'un endroit à l'autre. Il peut être un peu surdimensionné pour un simple transfert, mais si c'est un gros "migration" avec le volume correspondant, il peut être une bonne option.
OriginalL'auteur Thorsten