Teradata 无法在BTEQ中将会话字符集设置为UTF16

Teradata 无法在BTEQ中将会话字符集设置为UTF16,teradata,Teradata,我有一个文件,我需要在BTEQ中执行,该文件的格式为UTF16和BOM。但是,在运行文件之前尝试设置字符集时,出现以下错误: .SET SESSION CHARSET 'UTF16'; *** Error: SET SESSION CHARSET UTF16 is not allowed. 我可以将它设置为UTF8,然后将文件转换为UTF8,它就可以工作了。我还可以将文件转换为UTF8,而不使用BOM表,并且不设置脚本运行时的字符集。这个文件是系统生成的,我正在自动化这个脚本部署,所以转换文

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

.SET SESSION CHARSET 'UTF16';
 *** Error: SET SESSION CHARSET UTF16 is not allowed.
我可以将它设置为UTF8,然后将文件转换为UTF8,它就可以工作了。我还可以将文件转换为UTF8,而不使用BOM表,并且不设置脚本运行时的字符集。这个文件是系统生成的,我正在自动化这个脚本部署,所以转换文档不是首选

添加其他信息:
用于my automation的输入脚本没有BOM表,是在Powershell中使用.RUN FILE选项打开具有BOM表的文件生成的。因此,需要进行.SET会话字符集设置。

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

>bteq -c utf16
根据teradata文档:

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

可以使用
进行验证。如下所示显示控制字符集

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 ; 

您可以检查了解详细信息要在
utf-16
模式下启动
bteq
,请使用下面的命令

>bteq -c utf16
根据teradata文档:

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

可以使用
进行验证。如下所示显示控制字符集

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表,而是在Powershell中使用.RUN FILE选项打开具有BOM表的文件生成的。因此,需要进行.SET会话字符集设置。我做了一些进一步的测试,发现让.SET会话字符集接受“utf16”的唯一方法是将我的bteq输入文件修改为带有BOM的utf16,然后按照建议启动。感谢您的帮助。用于my automation的输入脚本没有BOM表,而是在Powershell中使用.RUN FILE选项打开包含BOM表的文件生成的。因此,需要进行.SET会话字符集设置。我做了一些进一步的测试,发现让.SET会话字符集接受“utf16”的唯一方法是将我的bteq输入文件修改为带有BOM的utf16,然后按照建议启动。谢谢你的帮助。