在将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
答案 0 :(得分:1)
通常,如果CSV文件在数据中包含逗号或回车符,则该字段将双引号以标识该字段跨越多行。
1,ABC,1
2,DEF,2
3,"G
H
I",3
4,JKL,4
我不确定其他角色,但这是我见过这个问题的方式。