无法在BTEQ中将SESSION CHARSET设置为UTF16

时间:2017-09-22 19:37:41

标签: teradata

我有一个文件需要在BTEQ中执行,格式化为带有BOM的UTF16。但是,当我在运行文件之前尝试设置CHARSET时出现以下错误:

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

我可以将其设置为UTF8并将文件转换为UTF8并且它可以正常工作。我也可以将文件转换为没有BOM的UTF8,并且不设置脚本运行的CHARSET。此文件是系统生成的,我自动执行此脚本部署,因此不希望转换文档。

添加其他信息: 用于我的自动化的输入脚本没有BOM,并且在Powershell中使用.RUN FILE选项生成,以打开具有BOM的文件。因此需要进行.SET SESSION CHARSET设置。

1 个答案:

答案 0 :(得分:2)

要在bteq模式下启动utf-16,请使用以下命令

>bteq -c utf16

根据teradata文件:

  

-c选项定义Unicode的会话字符集编码   session并接受一个可以是任何支持的字符集的参数   值

可以使用.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 ; 

您可以查看 invoking-bteq-to-use-unicode 了解详情