Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
Приветствую! Други, поможайте:
Задача стоит в выгрузке приличной по объёмам таблицы в текстовый файл. Была написана следующая процедурка:
CREATE OR REPLACE PROCEDURE DUMP_TABLE IS

  cf utl_file.file_type ;
  x CLOB DEFAULT EMPTY_CLOB();

BEGIN
  cf := utl_file.fopen( 'IMPDIR', 'file.txt', 'a' ) ;
  
  select * into x from TBL1; 
  
    if (x is not null) then 
        utl_file.put( cf, x ) ;
    else
        dbms_output.put_line('NULL');
    end if;

  utl_file.new_line( cf );
  utl_file.fclose( cf ) ;
EXCEPTION
  ...
END DUMP_TABLE;

Навигатор ругается на такую процедуру и говорит, что не хватает значений для данных...

Помогите - в чем беда, или можно сделать по-другому как-то?
28 май 10, 10:26    [8849667]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
DEVATKIN,

Приз за оригинальность )))

Грузите через SQL Plus командой spool
28 май 10, 10:30    [8849705]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
Поиск юзал, и про spool уже думал, но надо делать все через процедуру в PL/SQL.
28 май 10, 10:32    [8849745]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
-2-
Member

Откуда:
Сообщений: 15330
DEVATKIN
можно сделать по-другому как-то?
Если опишите задачу целиком. Пока вы даже определения таблицы не привели.
28 май 10, 10:33    [8849757]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
Elic
Member

Откуда:
Сообщений: 29988
DEVATKIN
приличной по объёмам таблицы
  x CLOB DEFAULT EMPTY_CLOB();
  select * into x from TBL1; 

Если не хочешь постигнуть основы языка, то стоит подумать о переквалификации в менеджера по клинингу.
28 май 10, 10:33    [8849759]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
Таблица порядка 50 столбцов, 5 из которых CLOB-типа.Хотелось бы узнать можно ли ее выгрузить средствами наподобие
master..xp_cmdshell bcp
т.е. целиком?
28 май 10, 10:38    [8849826]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
DEVATKIN
Таблица порядка 50 столбцов, 5 из которых CLOB-типа.Хотелось бы узнать можно ли ее выгрузить средствами наподобие
master..xp_cmdshell bcp
т.е. целиком?


Выгрузить для чего? Для загрузки куда-либо? Или посмотреть в текстовом редакторе?
28 май 10, 10:47    [8849916]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
-2-
Member

Откуда:
Сообщений: 15330
DEVATKIN
Таблица порядка 50 столбцов, 5 из которых CLOB-типа.Хотелось бы узнать можно ли ее выгрузить средствами наподобие
master..xp_cmdshell bcp
т.е. целиком?
А bcp умеет выгружать CLOB'ы в текстовый файл?
28 май 10, 10:52    [8849963]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
Выгрузка для последующей загрузки, но это не суть. Нужно выгрузить в текстовый файл всю таблицу.

Хотелось бы средство наподобие bcp... с CLOB оно никак не связано.
28 май 10, 10:57    [8850015]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
DEVATKIN
Выгрузка для последующей загрузки, но это не суть. Нужно выгрузить в текстовый файл всю таблицу.

Хотелось бы средство наподобие bcp... с CLOB оно никак не связано.


Как Вы себе представляете CLOB в текстовом файле?
28 май 10, 10:59    [8850031]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
Вот в том-то и вопрос, что нужен тип переменной для хранения данных таблицы с последующей выгрузкой, или как-нибудь можно в файл сразу всю таблицу запросом выгрузить?

Повторюсь: по сути надо результат запроса
select * from TBL1;
Вывести в текстовый файл.
28 май 10, 11:05    [8850108]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
AlexFF__|
Member

Откуда:
Сообщений: 2855
DEVATKIN
Вот в том-то и вопрос, что нужен тип переменной для хранения данных таблицы с последующей выгрузкой, или как-нибудь можно в файл сразу всю таблицу запросом выгрузить?

Повторюсь: по сути надо результат запроса
select * from TBL1;
Вывести в текстовый файл.


Копай в сторону SQL Loader. Можно сгенерировать его в процедуре, будет и текстовый файл и CLOB в отдельных файлах и посмотреть и загрузить :)
28 май 10, 11:09    [8850159]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
-2-
Member

Откуда:
Сообщений: 15330
DEVATKIN
Выгрузка для последующей загрузки, но это не суть.
Это суть, если загрузка в Оракл.
28 май 10, 11:18    [8850262]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
Спасибо! Покопаем!
У меня 9.2 стоит! К нему Loader только скачивать надо, или зашитый есть?
28 май 10, 11:27    [8850348]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
-2-
Это суть, если загрузка в Оракл.

Ну это понятное дело! ))) Не в оракл грузим!
28 май 10, 11:28    [8850360]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
exp / expdp ?
28 май 10, 11:29    [8850369]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
DEVATKIN,

А, ну это меняет дело.
Хотя конечно выгружать апельсины бочками CLOBы в текстовый файл задача довольно оригинальная.
28 май 10, 11:30    [8850381]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
Или есть какая-нить возможность выгружать данные из таблицы в файл построчно???
28 май 10, 12:05    [8850708]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
Охрименко
Member

Откуда: Украина, Киев
Сообщений: 1440
DEVATKIN
Или есть какая-нить возможность выгружать данные из таблицы в файл построчно???


Тоад поддерживает експорт данных во многие форматы
28 май 10, 12:24    [8850877]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
DEVATKIN,

sqlplus + spool
28 май 10, 12:28    [8850919]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
А пример подобного spool (с построчной записью в файл) можно поглядеть???

Просто записывать построчно в цикле хотелось бы - тоже spool подойдет?
28 май 10, 12:31    [8850943]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6727
DEVATKIN,

построчно в цикле:
sqlplus + spool + serveroutput on + dbms_ouput
28 май 10, 12:48    [8851099]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
-2-
Member

Откуда:
Сообщений: 15330
env,

Для начала нужно подумать, как потом из текстового файла вытаскивать пять CLOBов на строку.
28 май 10, 12:57    [8851200]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
DEVATKIN
Member

Откуда:
Сообщений: 183
Как потом тянуть из текстфайла CLOB-ы это второй вопрос!
Loader не подходит, т.к. почти перед каждым полем будут стоять разные значения, например:
'0001'||USERID||' 0002'||USNAME|| ...
От как-то так!
28 май 10, 14:44    [8852170]     Ответить | Цитировать Сообщить модератору
 Re: Подскажите по выгрузке большой таблицы в файл.  [new]
-2-
Member

Откуда:
Сообщений: 15330
DEVATKIN
Как потом тянуть из текстфайла CLOB-ы это второй вопрос!
Тогда:
SQL> create table ВнешняяТабла ... organization external (type oracle_datapump... location('ВнешняяТабла.dp')) as select * from МояТабла;
SQL> host od ВнешняяТабла.dp > ВнешняяТабла.txt

Переходим ко "второму вопросу"?
28 май 10, 14:55    [8852243]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Oracle Ответить