【问题标题】:when using spool how to remove the blank spaces where the the column has null values. I am using Toad and Oracle 11g使用假脱机时如何删除列具有空值的空格。我正在使用 Toad 和 Oracle 11g
【发布时间】:2019-08-20 06:54:34
【问题描述】:

我正在尝试将表的数据假脱机到 CSV 文件中。列具有空值的地方有空格。如何删除它。

SET COLSEP ,
SET PAGESIZE 5000
SET WRAP OFF
SET HEADSEP OFF
SET UNDERLINE OFF
SET TRIMSPOOL ON
SET TRIMOUT ON
SET LINESIZE 5000
SET TERMOUT OFF
SET FEEDBACK OFF

SPOOL C:\oracle\emp1.csv
SELECT * FROM emp1

SPOOL OFF

Emp_No,Emp_name,Project_Id,Group_Id,Department,Department_Id
                  1000,        AAA,      F123,          B768,           ,       68976
                  1001,         BBB,         F222,      B897,                   ,       98689

【问题讨论】:

  • 这里无法发布确切的输出,但我得到的输出是 column1 值加上 3 个制表符空格,然后是第 2 列值等等。此外,具有 NULL 值的列也需要 3 个制表符空格。那怎么修剪?我搜索了很多网站,但没有用

标签: sql oracle11g toad


【解决方案1】:

我建议您使用[SQLcl][1] 创建一个 CSV 文件。

SET SQLFORMAT CSV

SPOOL file.csv

SELECT * FROM T;

SPOOL OFF

SQL*Developer 的 PM 经理 (thatJeffSmith-Oracle) 撰写的 HOWTO 博客

http://www.thatjeffsmith.com/archive/2015/02/a-quick-4-1-trick-set-sqlformat/http://dbdude.net/oracle-sqlcl-use-sqlcl-to-simply-export-via-set-sqlformat-csv-and-import-via-load/

【讨论】:

  • 您好,感谢您的回答,但除了 Toad,我没有其他选择。 Toad 的任何想法
  • 你试过修剪功能了吗?
  • 如果我使用下面的代码,我得到了想要的输出,但是得到了||','||在每个列标题之后,如何删除 SET PAGESIZE 1000 SET WRAP OFF SET HEADSEP OFF SET UNDERLINE OFF SET TRIMSPOOL ON SET TRIMOUT ON SET LINESIZE 5000 SET TERMOUT OFF SET FEEDBACK OFF SPOOL c:\oracle\extract\emp.csv SELECT empno | | ',' ||姓名 || ',' ||工作 || ',' ||经理 || ',' || TO_CHAR(hiredate,'DD-MON-YYYY') AS 雇佣日期 || ',' ||萨尔|| ',' ||通讯 || ',' || deptno 来自 emp 按名称排序; SPOOL OFF SET PAGESIZE 14
  • 还有谁能帮忙?
猜你喜欢
  • 1970-01-01
  • 2015-01-02
  • 1970-01-01
  • 1970-01-01
  • 2011-08-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多