Oracle SQL 11gR2 linux 假脱机到 xls -> 德语元音变音不起作用

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

我正在使用 Linux sqlplus 处理 Oracle 11g 数据库(Oracle Database 11.2.0.4.0),我需要将查询结果导出到可以在 Excel 中打开的文件。数据包括德语元音变音(ä、Ö、Ü),我无法正确显示它们。我尝试过 HTML(类似 XLS)和 CSV 方法。

我尝试过的:

1.) 使用 HTML 标记 (result.xls): 我跑了类似的东西:

sql
Copy code
SET MARKUP HTML ON SPOOL ON
SPOOL result.xls
SELECT * FROM my_table;
SPOOL OFF

这会生成一个 HTML 文件,我可以在 Excel 中打开该文件。但是,变音符号无法正确显示。

2.) 我尝试在运行 sqlplus 之前设置 NLS_LANG:

export NLS_LANG=GERMAN_GERMANY.AL32UTF8

这更改了 SQL*Plus 提示的语言,但没有修复输出文件中的变音符号。

3.)我还尝试使用:

SET MARKUP HTML ON SPOOL ON ENCODING "UTF8"

在我的 sql 文件中,但出现 SP2-0158:未知 SET 选项“ENCODING”错误,可能是因为我使用的是 Oracle 11g,并且此版本的 SQL*Plus 不支持该功能。

4.) 我尝试

NLS_LANG=GERMAN_GERMANY.WE8MSWIN1252
来匹配包含变音符号的代码页,但 Excel 仍然无法正确显示字符。

我想要实现的目标:

我想要一种简单的方法来从 Oracle 11g 上的 SQLPlus 生成文件,只需在 Excel 中双击该文件即可正确显示所有元音变音 (Ä、Ö、Ü),而无需手动导入步骤。对于较旧的 SQLPlus 版本,是否有推荐的方法来确保默认情况下在 Excel 中正确显示变音符号?

提前谢谢您!

excel oracle-database oracle11g
1个回答
0
投票

由于您的版本中的 HTML ON 不支持 ENCODING,请切换到纯 CSV 输出。

SET ECHO OFF
SET FEEDBACK OFF
SET PAGESIZE 0
SET LINESIZE 1000
SET TERMOUT OFF
SET TRIMSPOOL ON
SET COLSEP ";"

SPOOL result.csv
SELECT * FROM my_table;
SPOOL OFF
EXIT;

ORRRRR 尝试使用 iconv:

iconv -f UTF-8 -t WINDOWS-1252 result.csv -o result_converted.csv

希望有帮助。

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