我需要做一个批处理,每天导出一些数据库中的数据库。文件。 我正在使用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这样有用的命令来帮助我解决这种情况。
感谢大家的支持。
卢卡
答案 0 :(得分:8)
SELECT
C.COLUMN1,
C.COLUMN2,
replace(C.COLUMN3,CHR(10),null) AS COLUMN3,
C.COLUMN4,
FROM TABLE1 C
WHERE CONDITION1 = TRUE;
由于此处的新行是因为数据,您必须在选择查询中删除它们!