sql - Oracle SQL : Export to CSV avoiding newlines

标签 sql oracle csv

我需要批量导出每天“csv”文件中数据库的一些数据。 实际上,我正在使用 SET COLSEP 命令,但在导出大小为 4000 (VARCHAR2 : 4000) 的大列时遇到一些问题:它在输出文件上返回给我许多空行和换行符。

我会尝试用一个例子更好地解释:

QUERY
-----

SET NEWPAGE 0
SET SPACE 0
SET ECHO OFF
SET FEEDBACK OFF
SET HEADING OFF
SET PAGESIZE 0
SET LINESIZE 2000
SET COLSEP ";"

SPOOL test.csv


SELECT 
  C.COLUMN1,
  C.COLUMN2,
  C.COLUMN3, -- column with issue
  C.COLUMN4,
FROM TABLE1 
WHERE CONDITION1 = TRUE;

SPOOL OFF

exit

我的 csv 文件中有输出:

OUTPUT
------

+---------+---------+---------------------------+---------+
| COLUMN1 ; COLUMN2 ;          COLUMN3          ; COLUMN4 |
+---------+---------+---------------------------+---------+
| VALUE1_1;VALUE1_2 ;Lorem ipsum dolor sit amet ;VALUE1_4 |
+---------+---------+---------------------------+---------+
|                    consectetur adipiscing elit          |
+---------+---------+---------------------------+---------+
|                    Donec a diam lectus                  |
+---------+---------+---------------------------+---------+
| VALUE2_1;VALUE2_2 ;Sed sit amet ipsum mauris  ;VALUE2_4 |
+---------+---------+---------------------------+---------+
|                                                         |
+---------+---------+---------------------------+---------+
|                    Donec a diam lectus                  |
+---------+---------+---------------------------+---------+
| VALUE3_1;VALUE3_2 ;                           ;VALUE2_4 |
+---------+---------+---------------------------+---------+
|                    Pellentesque auctor nisi             |
+---------+---------+---------------------------+---------+
|                    Donec a diam lectus                  |
+---------+---------+---------------------------+---------+

正如您所看到的,我在“COLUMN3”字段上有很多换行符,所以我想是否有一些有用的命令(例如 SET SOMETHING)可以在这种情况下帮助我。

感谢大家的支持。

卢卡

最佳答案

SELECT 
  C.COLUMN1,
  C.COLUMN2,
  replace(C.COLUMN3,CHR(10),null) AS COLUMN3, 
  C.COLUMN4,
FROM TABLE1 C
WHERE CONDITION1 = TRUE;

由于此处的新行是由数据引起的,因此您可能必须在选择查询本身中删除它们!

关于sql - Oracle SQL : Export to CSV avoiding newlines,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24739929/

相关文章:

sql - 将外部选择行变量传递给 oracle 中的内部选择

mysql - 如何在 SQL 中转换/修复此 WITH 语句?

sql - 在oracle中插入多条记录

sql - 在 Entity Framework (SQL Server)中做 "either/or"关系的好方法

java - 为什么Java的FileInputStream read()带参数,而Oracle的文档却说不带参数?

arrays - 使用 CSV 对象声明 Powershell 变量

php - SQL 中的变量不适用于准备语句

oracle - 是不是 "safe"是为JDK7平台开发的?

r - 将多个 csv 文件平均为 r 中的 1 个平均文件

ruby-on-rails - Ruby:CSV 解析器在我的数据中被双引号绊倒