将数据从Oracle导出为CSV [关闭]

问题描述 投票:0回答:1

我在Amazon Web Services EC2的实例上使用Oracle 12c。

我想将数据从一个具有5M记录的Oracle表导出到CSV格式的本地文件夹。

是否有一个脚本或程序可以在Redhat / bash环境中快速完成?

我正在寻找最小的安装和设置。

oracle amazon-web-services
1个回答
1
投票

你想快点吗?简单的SPOOL SQLPlus命令怎么样?您可以使用不同的SET命令(在SQLPlus命令提示符下键入HELP SET)使其更漂亮,但一般的想法如下:

SQL> set colsep ','
SQL> spool emp.csv
SQL> select employee_id, first_name, last_name
  2  from employees
  3  where rownum < 5;

EMPLOYEE_ID,FIRST_NAME          ,LAST_NAME
-----------,--------------------,-------------------------
        100,Steven              ,King
        101,Neena               ,Kochhar
        102,Lex                 ,De Haan
        103,Alexander           ,Hunold

SQL> spool off;
SQL> $type emp.csv
SQL> select employee_id, first_name, last_name
  2  from employees
  3  where rownum < 5;

EMPLOYEE_ID,FIRST_NAME          ,LAST_NAME
-----------,--------------------,-------------------------
        100,Steven              ,King
        101,Neena               ,Kochhar
        102,Lex                 ,De Haan
        103,Alexander           ,Hunold

SQL> spool off;

SQL>

[在看到OP的评论后由LF编辑]

那么,好吧,因为你没有采取这种努力并检查SET提供什么,所以你去:如果你想获得一个干净的输出(没有标题,下划线,SELECT命令等),创建一个SQL文件(让我们命名它) SP.SQL):

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 COLSEP ','
SPOOL emp.csv

SELECT employee_id, first_name, last_name
FROM employees
WHERE rownum < 5;

SPOOL OFF

现在连接到SQLPlus并运行该脚本:

SQL> @sp
        100,Steven              ,King
        101,Neena               ,Kochhar
        102,Lex                 ,De Haan
        103,Alexander           ,Hunold
SQL>

最后,如果你看看EMP.CSV,你会发现它很干净。

满意?

© www.soinside.com 2019 - 2024. All rights reserved.