2010-06-22 8 views
1

J'ai un ETL qui importe des tables d'Oracle vers SQL 2008 en utilisant OLEDB FastLoad. Les données dans Oracle sont non-unicode. Lorsque la table est créée dans SQL, elle est créée avec des types de données Unicode. Pour une raison quelconque, les types de données sont forcés de non-unicode à unicode. L'un d'entre vous connaît-il un moyen d'empêcher cela de se produire? Peut-être un problème de pilote Oracle?Oracle -> SQL - conversion forcée de non-unicode en unicode?

Répondre

0

Je présume que vous utilisez SSIS?

Devinez quoi, SSIS veut que tout soit unicode, donc il suppose que toutes les données entrantes sont en Unicode. Si vous ne voulez pas qu'il soit unicode, vous devrez convertir chaque champ en utilisant une tâche dataconversion.

+0

Yup. SSIS. Plus je lis, plus je me rends compte que c'est le cas. Merci pour l'info. – EWizard

+0

Juste mis en œuvre une conversion de données entre les sources et les destinations et il a fonctionné magnifiquement. Merci pour l'information. – EWizard

+0

FYI - nous avons laissé notre opération ETL tourner la nuit dernière et la performance nous a tué! Notre ancien processus consistait à déplacer les données d'Oracle vers les tables Unicode SQL, puis à transférer les données vers des tables SQL Non_Unicode (en utilisant la conversion implicite). Cette manière ne prend que 2 heures à courir. Eh bien la nouvelle façon, en utilisant la transformation de conversion de données entre la source et la destination a duré plus de 8 heures. Échouer. Geez SSIS est douloureux. – EWizard

0

C'est quelque chose que vous pourriez vouloir essayer. Vérifiez la valeur de la variable NLS_LANG dans la base de données Oracle à laquelle vous importez. Changer cette variable avant d'exécuter l'ETL pourrait vous aider.

Vérifiez la NLS_LANG FAQ ici: http://www.oracle.com/technology/tech/globalization/htdocs/nls_lang%20faq.htm

+0

Importation vers SQL à partir d'Oracle. – EWizard

+0

Encore une réponse valide. Oracle convertira les caractères de la base de données en jeu de caractères du client qui interroge les données (car à l'époque, certains clients n'étaient pas prêts à afficher des caractères fantaisistes). –

+0

Oui, réponse toujours valide. Je pense cependant que je vais devoir prendre soin de cela du côté SQL à l'intérieur de SSIS. Merci pour la réponse. – EWizard