SQL Plus将表转换为CSV文件问题

时间:2010-10-28 17:44:07

标签: sql oracle sqlplus

在将Oracle数据库中的表字段转换为CSV文件时,我遇到了一个无法解决的问题。我有一个varchar2(4000)列,用户可以在其中输入注释。有时,用户从其他程序(如MS Word)复制和粘贴文本,因此会在字段中粘贴大量额外信息,例如回车和换行。此字段中还可能包含大量文本。出于某种原因,即使我摆脱了回车和换行符,CSV文件仍然显示CR和LF,当我在Excel中打开CSV文件时,这会导致数据被分成两行。以下是本专栏的代码。有人可以帮我弄清楚为什么会发生这种情况,是否有办法解决问题?任何帮助深表感谢。感谢。

SET RECSEP OFF 
SET TRIMOUT ON
SET TRIMSPOOL ON
SET TERMOUT OFF 
SET TERM OFF 
SET ECHO OFF 
SET VERIFY OFF 
SET HEAD OFF 
SET PAGESIZE 0 
SET LINESIZE 3000
SET COLSEP '|'  
SET FEEDBACK OFF
SET WRAP ON

spool 'C:\Temp\data.csv'

SELECT REPLACE (REPLACE (TRIM(COMMENTS), chr(13),''), chr(10), '') 
  FROM T_COMMENT;

SPOOL OFF

1 个答案:

答案 0 :(得分:1)

通常,如果CSV文件在数据中包含逗号或回车符,则该字段将双引号以标识该字段跨越多行。

1,ABC,1
2,DEF,2
3,"G
H
I",3
4,JKL,4

我不确定其他角色,但这是我见过这个问题的方式。