Teradata 无法在BTEQ中将会话字符集设置为UTF16
我有一个文件,我需要在BTEQ中执行,该文件的格式为UTF16和BOM。但是,在运行文件之前尝试设置字符集时,出现以下错误:Teradata 无法在BTEQ中将会话字符集设置为UTF16,teradata,Teradata,我有一个文件,我需要在BTEQ中执行,该文件的格式为UTF16和BOM。但是,在运行文件之前尝试设置字符集时,出现以下错误: .SET SESSION CHARSET 'UTF16'; *** Error: SET SESSION CHARSET UTF16 is not allowed. 我可以将它设置为UTF8,然后将文件转换为UTF8,它就可以工作了。我还可以将文件转换为UTF8,而不使用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,然后按照建议启动。谢谢你的帮助。