2017-09-22 11 views
0

BOMでUTF16でフォーマットされたBTEQ内で実行する必要があるファイルがあります。私は、ファイルを実行する前にCHARSETを設定しようとすると、しかし、私は次のエラーを取得する:BTEQでSESSION CHARSETをUTF16に設定できません

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

私はUTF8にこれを設定し、UTF8にファイルを変換し、それが動作することができます。また、ファイルをBOMなしでUTF8に変換し、スクリプトが実行されるCHARSETを設定することはできません。このファイルはシステムで生成されており、このスクリプトのデプロイメントを自動化しているため、ドキュメントの変換は好ましくありません。

追加情報を追加: オートメーションに使用する入力スクリプトにBOMがなく、BOMを持つファイルを開くために.RUN FILEオプションを使用してPowershellで生成されます。したがって、.SETセッション文字セットの設定を行う必要があります。

答えて

2

utf-16モードでbteqを開始するには、Teradataのドキュメントによると、コマンド

>bteq -c utf16 

の下に使用します。

-cオプションは、Unicode セッションのセッションの文字セットエンコーディングを定義し、引数をとります任意の文字セットを指定できます。 値

.show control charsetを使用して確認できます。

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 ; 

あなたは私の自動化のために使用される入力スクリプトがBOMを持っていないとBOMを持っているファイルを開くには、.RUN FILEオプションを使用してPowerShellで生成された詳細

+0

ためinvoking-bteq-to-use-unicodeを確認することができます。したがって、.SETセッション文字セットの設定を行う必要があります。 – Russ960

+0

私はいくつかのテストを行い、.SETセッション文字列を受け入れる唯一の方法が 'utf16'を受け入れるにはBOMを使用してbteq入力ファイルをUTF16に変更してから提案したように開始することがわかった。ご協力ありがとうございました。 – Russ960

関連する問題