SQLPlus 保存到 CSV 文件而不格式化

Posted

技术标签:

【中文标题】SQLPlus 保存到 CSV 文件而不格式化【英文标题】:SQLPlus saving to CSV File without Formatting 【发布时间】:2018-01-02 16:53:38 【问题描述】:

我正在尝试使用 SQLPlus 查询 Oracle 数据库并将结果保存为 CSV 文件。我只想要数据,而不是 SQLPlus 选项提供的格式,例如 numwidthlinesizepagesize 等。

我不想使用 bash 或 awk 进行额外的处理来删除演示格式,也不想像SELECT field1 || ',' || field2 等进行复杂的查询

目前我正在尝试使用此处发布的方法,但我仍然不清楚保存为 CSV 时如何避免演示噪音。

https://chartio.com/resources/tutorials/how-to-write-to-a-csv-file-using-oracle-sql-plus/

set colsep ,
set headsep off
set pagesize 0
set trimspool on
set linesize 2
set numwidth 5

spool books.csv

SELECT
  title,
  primary_author
FROM
  books;

spool off

这是 8 年前的 *** 问题和答案,但我希望现在有更好的方法。

How do I spool to a CSV formatted file using SQLPLUS?

谢谢。

【问题讨论】:

SQL*Plus 没有太大变化...您的意思是什么噪音?您现在看到了什么,您想看到什么?遗憾的是,如果没有“复杂的查询方法”,您将无法删除字段中的尾随空格。从 SQL*Plus 切换到 the SQLcl command line tool 是一种选择吗?它具有 SQL Developer 的高级格式化功能... 获取 SQLcl,设置 sqlformat csv,就完成了。自那 8 年以来,我们为数据库构建了一个新的现代 CLI 接口。试试看 【参考方案1】:

我想说是SET ECHO OFF 困扰着你。试试看。

另外,也许您想要书签以下 SET 命令集。

SET ECHO OFF
SET VERIFY OFF
SET TRIMSPOOL ON
SET TRIMOUT ON
SET LINESIZE 9999
SET PAGESIZE 0
SET FEEDBACK OFF
SET TIMING OFF
SET TIME OFF
SET LONG 10000

【讨论】:

以上是关于SQLPlus 保存到 CSV 文件而不格式化的主要内容,如果未能解决你的问题,请参考以下文章

如何将传入数据(NDJ)从一个API传递到CSV格式的另一个API,而不创建文件?

sqlplus 输出标题格式错误和不必要的空行

怎么讲csv格式转换为xlsx

以正确的格式将生成的 CSV 保存到服务器作为下载

vb导出csv文件的问题

csv文件格式问题