我有一个文件需要在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设置。
答案 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 了解详情