скрипт для получения oracle таблицы базы данных в формате csv - PullRequest
0 голосов
/ 08 мая 2020

Я использую этот сценарий, как показано ниже

set colsep ','
set heading on
set headsep on
set pagesize 0
set trimspool off
spool C:\DXC\books11.csv
Select * from test_extract;
spool off
exit

, но проблема в том, что

ARKO                ,1A                  ,        20
ARKO1               ,1B                  ,        20

пробел появляется после значений каждого атрибута в соответствии с длиной атрибута .

требуемый вывод:

ARKO,1A,20
ARKO1,1B,20

Ответы [ 2 ]

1 голос
/ 08 мая 2020

Насколько я могу судить, никакая команда SET не поможет.

Один из вариантов - который помогает - это назвать все столбцы, которые вы буферизуете, и объединить их, используя желаемый разделитель столбцов.

Например, это то, что у вас сейчас есть:

SQL> set colsep ','
SQL> set heading on
SQL> set headsep on
SQL> set pagesize 0
SQL> set trimspool off
SQL> select * From dept;
        10,ACCOUNTING    ,Zagreb
        20,RESEARCH      ,DALLAS
        30,SALES         ,CHICAGO
        40,OPERATIONS    ,BOSTON

Но, если вы сделаете это так:

SQL> select deptno ||','|| dname ||','|| loc from dept;
10,ACCOUNTING,Zagreb
20,RESEARCH,DALLAS
30,SALES,CHICAGO
40,OPERATIONS,BOSTON

, это выглядит так, как вы хотели. Недостаток? Вам нужно будет ввести все эти столбцы.

0 голосов
/ 09 мая 2020

Используйте SQLcl, он находится в вашем каталоге SQL Developer bin, работает как SQLPlus, только лучше.

Это SQL .exe, например, в Windows, но также доступно для собственной загрузки 25 МБ на Oracle .com .

set sqlformat csv
spool file.csv
select * from table;

Это даст вам именно то, о чем вы просите.

...