Оракловые чудеса

iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Оракловые чудеса

Post by iDesperado »

ALV00 wrote: 30 May 2019 14:42 Вот еще проблема: нужно тупо скинуть таблицу в CSV файл на локальном диске. Exp делает что-то неожиданно странное, вроде бэкапа, причем пишет в файл на сервере, куда у меня и доступа нет. В оракле походу нет готовой утилиты для такой элементарщины. Как ораклисты выкручиваются, пишут каждый раз программу что ли?
любой ide сохраняет хоть в csv, хоть ёксель
User avatar
Helmsman
Уже с Приветом
Posts: 6450
Joined: 15 May 2003 00:04
Location: LA

Re: Оракловые чудеса

Post by Helmsman »

ALV00 wrote: 30 May 2019 14:42 Вот еще проблема: нужно тупо скинуть таблицу в CSV файл на локальном диске. Exp делает что-то неожиданно странное, вроде бэкапа, причем пишет в файл на сервере, куда у меня и доступа нет. В оракле походу нет готовой утилиты для такой элементарщины. Как ораклисты выкручиваются, пишут каждый раз программу что ли?
Утилита есть, sqlplus называется. Глушим заголовки и ставим запятую разделителем, потом просто select * from table со spool-ом. Но если к серверу доступа нет, то, как выше написали, любой ide - toad, sql developer, pl/sql developer.
exp тут не годится, у него свой формат.
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Оракловые чудеса

Post by ALV00 »

iDesperado wrote: 30 May 2019 15:46 любой ide сохраняет хоть в csv, хоть ёксель
Хотелось бы запускать из командной строки, для автоматизации.
Helmsman wrote: 30 May 2019 16:08 Утилита есть, sqlplus называется. Глушим заголовки и ставим запятую разделителем, потом просто select * from table со spool-ом. Но если к серверу доступа нет, то, как выше написали, любой ide - toad, sql developer, pl/sql developer.
exp тут не годится, у него свой формат.
Криво выходит, ой криво. Для печати кое-как годится, для обмена данными нет. Лезет всякая грязь, varchar выводятся fixed size с пробелами.
Unusable :sadcry:
mskmel
Уже с Приветом
Posts: 946
Joined: 24 Sep 2013 05:58
Location: US\GA

Re: Оракловые чудеса

Post by mskmel »

CSV в 2019м по любому криво.
Если по прежнему очень надо, то https://www.oracle.com/database/technol ... sqlcl.html . Он может в ещё нескольких форматах https://oracle-base.com/articles/misc/s ... at-command
iDesperado
Уже с Приветом
Posts: 1349
Joined: 28 Nov 2008 17:50

Re: Оракловые чудеса

Post by iDesperado »

ALV00 wrote: 30 May 2019 19:13
iDesperado wrote: 30 May 2019 15:46 любой ide сохраняет хоть в csv, хоть ёксель
Хотелось бы запускать из командной строки, для автоматизации.
ну тогда тут программист нужен. для автоматизации программисты действительно "пишут каждый раз программу".
User avatar
Helmsman
Уже с Приветом
Posts: 6450
Joined: 15 May 2003 00:04
Location: LA

Re: Оракловые чудеса

Post by Helmsman »

ALV00 wrote: 30 May 2019 19:13 Криво выходит, ой криво. Для печати кое-как годится, для обмена данными нет. Лезет всякая грязь, varchar выводятся fixed size с пробелами.
Unusable :sadcry:
Хмм, откуда грязь? Посмотрел свои старые скрипты, там разве что вместо * поля перечислены. Всё работает как надо, символьные поля таки с пробелами, но если уж все поля перечислять, можно и trim() добавить. Вот список параметров для sqlplus:
set head off
set pages 100
set lines 300
set colsep ','
set tab off
set echo off
set feedback off
set term off
set serveroutput on
SET VERIFY OFF

У нас это дело создаёт csv, который засылается на другой сервер и грузится в ёксель.
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Оракловые чудеса

Post by ALV00 »

За sqlcl спасибо, конечно... Но все же эти ребята остались верными себе. Допилили sqlplus, добавили форматирование, молодцы. Но опять вышла вещь-в-себе ни на что не похожая. Почему я не могу запустить в нем скрипт, не заходя внутрь? Абсолютно все CLP, которые я знаю, имеют такую возможность. Мне не надо на экран, мне надо только в файл. В результате, пол-дня борьбы, задача так и не решена. Palmface...
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Оракловые чудеса

Post by ALV00 »

Helmsman wrote: 31 May 2019 16:36 Всё работает как надо, символьные поля таки с пробелами, но если уж все поля перечислять, можно и trim() добавить.
Да, если добавить trim() и конкатенацию кавычек, то получается вполне.
В SQLCL есть правильное CSV форматирование, но см. выше.
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Оракловые чудеса

Post by ALV00 »

Победа разума.

sql.exe -S <login> @script.sql > NUL

script.sql:

set sqlformat csv
set feedback off
spool file.csv
select * from ...;
spool off
exit
Easbayguy
Уже с Приветом
Posts: 10633
Joined: 17 Jul 2003 22:11

Re: Оракловые чудеса

Post by Easbayguy »

Чисто из спортивного любопытства, а что python уже отменили?
Пх'нглуи мглв'нафх Ктулху Р'лайх угахнагл фхтагн
User avatar
ALV00
Уже с Приветом
Posts: 1494
Joined: 08 Mar 2002 10:01
Location: NJ

Re: Оракловые чудеса

Post by ALV00 »

Easbayguy wrote: 31 May 2019 18:59 Чисто из спортивного любопытства, а что python уже отменили?
А что в нем есть особенного? Написать программу, которая вытягивает данные с базы и распечатывает, можно на чем угодно.

Return to “Вопросы и новости IT”