2017-09-22 1 views
0

J'ai un fichier que j'ai besoin d'exécuter dans BTEQ qui est formaté en UTF16 avec BOM. Cependant, je reçois l'erreur suivante lorsque je tente de mettre le charset avant d'exécuter le fichier:Impossible de définir SESSION CHARSET sur UTF16 dans BTEQ

.SET SESSION CHARSET 'UTF16'; 
*** Error: SET SESSION CHARSET UTF16 is not allowed. 

Je peux mettre cela UTF8 et convertir le fichier en UTF8 et il fonctionne. Je peux également convertir le fichier en UTF8 sans BOM et ne pas définir CHARSET le script s'exécute. Ce fichier est généré par le système et j'automatise ce déploiement de script, donc la conversion du document n'est pas préférée.

AJOUT D'INFORMATIONS SUPPLÉMENTAIRES: Le script d'entrée utilisé pour mon automatisation n'a pas la nomenclature et est généré dans Powershell à l'aide de l'option .RUN FILE pour ouvrir le fichier contenant la nomenclature. Ainsi, la nécessité de faire le paramètre .SET SESSION CHARSET.

Répondre

2

Pour commencer bteq en mode utf-16, utilisez ci-dessous commande

>bteq -c utf16 

Selon la documentation teradata:

l'option -c définit le caractère de la session ensemble de codage pour une session Unicode et prend un argument peut être n'importe quel jeu de caractères pris en charge valeur

Il peut être vérifié en utilisant .show control charset comme ci-dessous.

T e r a d a t a B T E Q 1 6 . 0 0 . 0 0 . 0 2 f o r W I N 3 2 . P I D : 1 2 1 2 
C o p y r i g h t 1 9 8 4 - 2 0 1 6 , T e r a d a t a C o r p o r a t i o n . A L L R I G H T S R E S E R V E D . 
E n t e r y o u r l o g o n o r B T E Q c o m m a n d : 
.show control charset; 

. s h o w c o n t r o l c h a r s e t ; 

    [ S E T ] S E S S I O N C H A R S E T     = U T F 1 6 ;            
       i m p o r t/e x p o r t e n c o d i n g = U T F 1 6 ;            
       s t d i n/s t d o u t e n c o d i n g  = U T F 1 6 ; 

Vous pouvez vérifier invoking-bteq-to-use-unicode pour plus de détails

+0

Le script d'entrée utilisé pour mon automatisation ne pas la nomenclature et sont générés dans Powershell en utilisant l'option de fichier .run pour ouvrir le fichier qui ne possède la nomenclature . Ainsi, la nécessité de faire le paramètre .SET SESSION CHARSET. – Russ960

+0

J'ai fait quelques tests supplémentaires et j'ai trouvé que la seule façon d'obtenir .SET SESSION CHARSET pour accepter 'utf16' était de modifier mon fichier d'entrée bteq en UTF16 avec BOM puis de démarrer comme suggéré. Merci de votre aide. – Russ960