【发布时间】:2012-04-09 22:29:53
【问题描述】:
我正在使用带有 SPOOL 命令的 sqlplus 从 SELECT 查询创建一个文件。我的 SELECT 查询中的某些列包含法语字符,这些字符未正确写入文件。 从 TableX 中选择 RPAD(Column1, ‘’, 32); 如果 Column1 的值包含例如字符“é”,则输出的长度将是 31 而不是 32,并且“é”字符不会正确显示在输出文件中。
如何设置列的格式,以便从列中获得正确的值和长度?
【问题讨论】:
我正在使用带有 SPOOL 命令的 sqlplus 从 SELECT 查询创建一个文件。我的 SELECT 查询中的某些列包含法语字符,这些字符未正确写入文件。 从 TableX 中选择 RPAD(Column1, ‘’, 32); 如果 Column1 的值包含例如字符“é”,则输出的长度将是 31 而不是 32,并且“é”字符不会正确显示在输出文件中。
如何设置列的格式,以便从列中获得正确的值和长度?
【问题讨论】:
我发现了如何解决我的格式化问题。
1.选中列的定义必须由Column1 VARCHAR2(32 BYTE)替换为VARCHAR2(32 CHAR);
2. 字符集环境变量 NLS_LANG 必须接受法语字符:NLS_LANG=FRENCH_FRANCE.WE8ISO8859P15。
无论如何谢谢!
【讨论】: