ORACLE:需要导出表数据,列之间没有空格

标签 oracle bash unix import export

假设我有包含列的表 A

      col1   col2   col3   col4
      -------------------
      sajal  singh  28     IND
      hello  how    are    you

我想将数据导出到一个平面文件中,列之间没有空格或制表符 所以输出应该是

      cat dump
      sajalsingh28IND
      hellohowareyou

我试过的。我写了一个脚本

      #!/usr/bin/bash

      #the file where sql output will go
      OUT=report.txt
      >$OUT
      DESC=desc.txt
      >$DESC

      sqlplus -s "xxx/xxx@xxx" << END_SQL > /dev/null

      set pages 0
      set feedback off
      set heading off
      set trimspool off
      set termout off
      set verify off
      set wrap off

      SPOOL $DESC

      Select * from table_name;

      SPOOL OFF

      END_SQL

但是我在多行中得到一行的输出并且带有制表符/空格

  1. 所以问题是我该如何解决这个问题?和
  2. 我发现了一些数据泵实用程序,例如 expdp。我可以在 Unix 中使用它吗?如果是,我怎样才能获得那种格式的转储?

谢谢

最佳答案

如果您已经有 CSV 转储,则可以运行以下命令:

awk 'BEGIN{FS=",";OFS=""}{$1=$1}1' csv.dump > new.dump 

未测试:

SET HEADING OFF
SET FEEDBACK OFF
SPOOL $DESC

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

SPOOL OFF;

关于ORACLE:需要导出表数据,列之间没有空格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17206410/

相关文章:

oracle 更快的分页查询

bash - 是否可以在 bash 中检测 *which* 陷阱信号?

linux - 试图删除子目录中除最近的 2 个文件之外的所有文件

python - 如何在 Python 中运行 bash 脚本,但表现得好像它是从另一个目录运行的?

linux - Unix 基于分号对行进行排序

java - 无法使用 dropjava 命令从 Oracle 数据库中删除 jar

Java - 并发标记清除 GC 中的标记/未标记对象

c# - 尝试更新记录时出现 AngularJS 错误

bash - 将具有扩展名的文件移动到某个位置

unix - cat 按什么顺序选择要显示的文件?