以UTF-8编码从Oracle导出SQLPluse查询到CSV

问题描述 投票:1回答:1

我正在使用下面的SQLPluse脚本将数据从Oracle导出到CSV文件。问题是我需要文件使用UTF-8及其当前的ANSI。如何使文件成为UTF-8?


SET colsep ';'
SET TERMOUT OFF
SET NEWPAGE 0
SET SPACE 0
SET LINESIZE 800
SET PAGESIZE 0
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SET NUMW 50



column timecol new_value timestamp
column spool_extension new_value suffix
SELECT '.csv' spool_extension
FROM dual;
/


SPOOL C:\job_files\production\Data_Upload\TEST_1&&suffix
@@"C:\job_files\production\Data_Upload\TEST_1";
/


Exit;
oracle encoding character-encoding sqlplus
1个回答
0
投票

无法从您的问题中完全理解您的意思,但是我认为问题是查询返回的数据包含UTF8数据,但您的输出未正确显示UTF8字符。

NLS_LANG环境变量控制包括SQL * Plus在内的Oracle工具/程序如何处理此类数据。

您通常会将变量设置为与数据库匹配的内容,例如

export NLS_LANG=AMERICAN_AMERICA.AL32UTF8

然后运行SQL * Plus。

您可以查询NLS_DATABASE_PARAMETERS以查看数据库中有哪些语言设置,并像上面那样使用NLS_LANG变量进行试验。

NLS_LANG的值格式为LANGUAGE_COUNTRY.CHARSET

© www.soinside.com 2019 - 2024. All rights reserved.