2017-08-06 107 views
0

我已经使用这些命令来正确对齐输出。但问题依然存在。有人可以帮帮我吗?我做了很多研究,但找不到合适的答案。当使用spool将数据从数据库导出时,大型数据列集被分成两行,以避免它出现?

spool on 
set verify off; 
set feedback off; 
set linesize 3000; 
set pagesize 50000; 
set wrap on; 
set long 100000; 
set longchunksize 1000000; 
set colsep '|'; 
spool F:\data\tabledata\products.txt; 
set trimspool on; 
select * from products; 
spool off; 

in my image one data column which is CLOB data type is dividing into two rows.

+0

Mysql是使用不同语法的不同产品 – Shadow

+0

我也附加了图像。请检查一次。 –

+0

这是SQL plus。 –

回答

0

我认为这个问题是列数据类型的长度,如果你有,例如,Varchar2 (100)并在该列你有长度less than 100所以Trimspool ON不会修剪数据类型长度数据 - 这就是你遇到的问题(我不知道它是否合乎逻辑,但确实发生了)。 通过串联做你的查询输出最简单的方式,尝试这样的:

spool F:\data\tabledata\products.txt; 

SELECT col1 || '|' || col2 || '|' || col3 
FROM Products; 

spool off; 
+0

它没有显示所有列的输出,该列在5列后终止打印 –

+0

即使我使用这个我也没有得到所需的列名 –

+0

您能分享您的产品表定义吗? – Ikrom

0

对大对象类型BLOB和CLOB的设置与普通的文本字段不同。请包括查询之前,以下设置,看看它是否解决了问题:

set long 500 
set longchunksize 500 

This blog post讨论的longlongchunksize效果。

+0

我已经包括那些..虽然它不工作 –

相关问题