SQLPLUS 在找到非英语的其他语言的数据时将 ¿¿¿
SQLPLUS writes ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿ to csv file when finds a data in other languages than English
我正在尝试将数据从 Oracle table 导出到 csv 文件。 table 的其中一列定义为 CLOB 数据类型,并且数据以多种语言存储。
例如,
create table test1
( col1 number,
col2 clob);
Insert into test1 values ( 1, '使用 Excel 数据挖掘外接程序执行购物篮分析');
select * from test1;
执行并截取自 SQL 开发人员的屏幕截图:
当我 运行 下面的脚本来自 SQLPlus
set echo off
set newpage none
set feedback off
set pages 0
spool C:\Users\venkat\Desktop\data.csv
select 'col1,col2' from dual;
select col1||',' || col2
from test1;
spool off;
文件中的数据是这样的
col1,col2
1,¿¿ Excel ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿
期待在此论坛中获得一些帮助。我想查看数据库中的数据。
编辑:抱歉,我应该提到环境 Windows。
有关此 NLS 语言参数的更多信息,请点击此处
Select * from nls_database_parameters
where parameter IN ('NLS_LANGUAGE','NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
结果是
NLS_LANGUAGE AMERICAN
NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16
您必须设置 NLS_LANG
环境变量以告知 SQLPlus 使用何种字符编码;指定可以表示预期字符的字符编码。参见例如“Running SQLPlus with bash causes wrong encoding" on Server Fault.
在 Bash 中,您可以像这样设置环境变量:
export NLS_LANG="AMERICAN_AMERICA.UTF8"
在 Windows 上 cmd.exe
你会说
set NLS_LANG=AMERICAN_AMERICA.UTF8
我正在尝试将数据从 Oracle table 导出到 csv 文件。 table 的其中一列定义为 CLOB 数据类型,并且数据以多种语言存储。
例如,
create table test1
( col1 number,
col2 clob);
Insert into test1 values ( 1, '使用 Excel 数据挖掘外接程序执行购物篮分析');
select * from test1;
执行并截取自 SQL 开发人员的屏幕截图:
当我 运行 下面的脚本来自 SQLPlus
set echo off
set newpage none
set feedback off
set pages 0
spool C:\Users\venkat\Desktop\data.csv
select 'col1,col2' from dual;
select col1||',' || col2
from test1;
spool off;
文件中的数据是这样的
col1,col2
1,¿¿ Excel ¿¿¿¿¿¿¿¿¿¿¿¿¿¿¿
期待在此论坛中获得一些帮助。我想查看数据库中的数据。
编辑:抱歉,我应该提到环境 Windows。
有关此 NLS 语言参数的更多信息,请点击此处
Select * from nls_database_parameters
where parameter IN ('NLS_LANGUAGE','NLS_CHARACTERSET', 'NLS_NCHAR_CHARACTERSET');
结果是
NLS_LANGUAGE AMERICAN NLS_CHARACTERSET AL32UTF8
NLS_NCHAR_CHARACTERSET AL16UTF16
您必须设置 NLS_LANG
环境变量以告知 SQLPlus 使用何种字符编码;指定可以表示预期字符的字符编码。参见例如“Running SQLPlus with bash causes wrong encoding" on Server Fault.
在 Bash 中,您可以像这样设置环境变量:
export NLS_LANG="AMERICAN_AMERICA.UTF8"
在 Windows 上 cmd.exe
你会说
set NLS_LANG=AMERICAN_AMERICA.UTF8