Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Вниз

Экспорт таблицы Oracle   Найти похожие ветки 

 
vigo_   (2006-12-12 10:32) [0]

Добрый день,
мне нужно сделать экспорт части (селект из) одной таблицы Oracle. Хотел сохранить как селект из SQL Navigator"a в *.xls, но Excel работает до 65 т. записей (в селекте около 200 тыс.), поэтому делать несколько xls-файлов не хочется. Посоветуйте как решить проблему?


 
erika ©   (2006-12-12 10:34) [1]

Если необходимо для заливки данных в  другую базу  можно использовать txt Файл разделитель ";" . Если данные нужны  для  дальнейшей  обработки создать временную DB  и  заливать в  нее.


 
vigo_   (2006-12-12 10:39) [2]


> Если данные нужны  для  дальнейшей  обработки создать временную
> DB  и  заливать в  нее.
>

Идея понятна, а можно чуть подробнее какими средствами это лучше сделать, никогда не приходилось...


 
Sergey13 ©   (2006-12-12 10:44) [3]

> [0] vigo_   (12.12.06 10:32)

Сделай полный экспорт таблицы, импортируй ее в другую БД под другим именем, грохни все ненужное, перелей в целевую таблицу. Все делается родными инструментами Оракл.


 
erika ©   (2006-12-12 10:44) [4]

{ Компонент Table1 делается неактивным }
Table1.Active := False;
Table1.TableName:="Dep.db";
if not Table1.Exists then begin
 with Table1 do begin
   { Указывается тип таблицы }
   TableType := ttParadox;
   { Описываются поля таблицы }
   with FieldDefs do begin
     Clear;
     with AddFieldDef do begin
       Name := "Dep";
       DataType := ftString;
       Size := 20;
       Required := True;
     end;
     with AddFieldDef do begin
       Name := "Proisv";

       DataType := ftBoolean;
     end;
   end;
   with IndexDefs do begin
     Clear;
     { Индекс без имени - первичный ключ таблицы }
     with AddIndexDef do begin
       Name := "";
       Fields := "Dep";
       Options := [ixPrimary];
     end;
   end;
   { Создание таблицы методом CreateTable }
   CreateTable;
   Open;
   {Вставка записей}
   Insert;
   FieldByName("Dep").AsString := "Бухгалтерия";
   FieldByName("Proisv").AsBoolean := false;

   Post;

   Insert;
   FieldByName("Dep").AsString := "Цех 1";
   FieldByName("Proisv").AsBoolean := true;
   Post;

   Insert;
   FieldByName("Dep").AsString := "Цех 2";
   FieldByName("Proisv").AsBoolean := true;
   Post;
 end;
end;

это пример из help"a


 
erika ©   (2006-12-12 10:45) [5]

(3)  и так можно


 
vigo_   (2006-12-12 10:53) [6]

Предположим, что это будет локальная таблица, например, *.dbf. А как заливать туда данные?
> родными инструментами Оракл

если можно пример. Придется писать программу дабавления записей в таблицу из txt файла?


 
erika ©   (2006-12-12 10:55) [7]

ты  мне можешь написать через какие инструменты  ты  работаешь с  oracle


 
Sergey13 ©   (2006-12-12 10:56) [8]

> [6] vigo_   (12.12.06 10:53)

Че те надо - внятно объясни. Куда конкретно надо экспортировать и для чего?


 
Reindeer Moss Eater ©   (2006-12-12 11:03) [9]

Берется родной оракловый плюс.
Пишется скрипт, получающий нужное подмножество записей таблицы и формирующий скрипт на инсерт в дбф. Включается спул в файл.
После выполнения скритпа в руках остается готовый сценарий для вставки.


 
vigo_   (2006-12-12 11:03) [10]


> ы  мне можешь написать через какие инструменты  ты  работаешь
> с  oracle

SQL Navigator

> Че те надо - внятно объясни. Куда конкретно надо экспортировать
> и для чего?

Нужно экспортировать часть данных таблицы, которая после наката базы накроется. А это информация мне может понадобится... вот собственно и все.


 
Sergey13 ©   (2006-12-12 11:14) [11]

> [10] vigo_   (12.12.06 11:03)

http://www.oraclub.tomsk.ru/

В утилитах посмотри.


 
k2 ©   (2006-12-12 14:04) [12]

create table temp1 as
 select <tra-ta-ta>


 
vigo_   (2006-12-12 18:29) [13]


> Sergey13 ©   (12.12.06 11:14) [11]
>
> > [10] vigo_   (12.12.06 11:03)
>
> http://www.oraclub.tomsk.ru/
>
> В утилитах посмотри.

только что руки дошли написать, пока не получилось...

если я правильно понял, для этого нужно сначала создать dbf?  если да, то довольно странную ошибку выдает, мол, record size is too big for table. Кстати, такую же ошибку уже видел создавая таблицу (в DataBase Desctop"e) при сохранении, - пришлось поля типа varchar делать меньше номинальных значений.


> create table temp1 as
>  select <tra-ta-ta>


зачем мне в схеме еще одна таблица или имелось ввиду что-то другое?


 
k2 ©   (2006-12-12 18:43) [14]

в другой схеме можно создать


 
rar ©   (2006-12-12 19:36) [15]

Если есть  PL/SQL девелопер, то там  есть возможность сохранить таблицу , а потом ее залить в другое место


 
Sergey13 ©   (2006-12-13 08:17) [16]

> [13] vigo_   (12.12.06 18:29)
> если я правильно понял, для этого нужно сначала создать dbf?
Почему "сначала"? Какова конечная то цель?
Я вообще не пойму чего тебе надо. Пока понял только что экспортируется из Оракла. Куда?!!!


 
k2 ©   (2006-12-13 09:46) [17]

я так поняла, што ему нужно просто сохранить часть данных таблицы, штобы потом то ли сравниваться с ними, то ли перезалить обратно
если не подразумевается снос и перестановка оракула, то помоему достаточно будет временной таблицы


 
Sergey13 ©   (2006-12-13 10:04) [18]

> [17] k2 ©   (13.12.06 09:46)

Так в этом случае нормальный штатный экспорт вообще решает все проблемы, ИМХО. Даже при сносе и переустановке Оракла.


 
vigo_   (2006-12-13 10:07) [19]

Попробую сформулировать подробнее, в связи со сносом базы (этим занимаюсь не я), мне нужно извлечь некоторые данные одной из таблиц. С этими данными в дальнейшем возможно придется работать. При этом не хотелось бы сохранять в текстовый файл, т.е. работать с текстовым файлом. А сохранить в плоскую таблицу, чтобы потом, например, с помощью SQL Explorer"а настроить alias и получать инфо через SQL (а не поиском по файлу если он текстовый). При этом не получается сохранить в .dbf, с помощью [11], так как программа просит путь к файлу .dbf Поэтому-то я его и создавал вручную (в DataBase Desctop). Но так ничего с этим вариантом не получилось.


 
Sergey13 ©   (2006-12-13 10:57) [20]

> [19] vigo_   (13.12.06 10:07)

Вот что бы сразу не описать так ситуацию.
1. По той ссылке вроде не одна прога, а несколько. Сам я их не пробовал, посему за работоспособность не ручаюсь.
2. Написать самому такую прогу (открыть в Оракле и тупо перекидывать в другой формат по 1 записи) - дело получаса.
3. Многие инструменты типа PL/SQL Developer позволяют сохранять результат запроса в разные форматы.


 
roottim ©   (2006-12-13 11:20) [21]

а в Access ваш Sql Navigator позволяет?
если нет.. то думаю можно попробовать настроить ODBC и сделать импорт таблицы в Access


 
ANB ©   (2006-12-13 14:26) [22]


> vigo_   (13.12.06 10:07) [19]

1. Штатный оракловый лоадер.
2. (ИМХО - самое удобное).
create table T1 as select * from where . . .
exp созданной таблицы (экспортить таблицы можно и по одной).
Потом в любой момент поднимаешь этот дамп в любую схему (imp) и делаешь с этой таблицей чего хочешь. В том числе можно и залить данные обратно (insert из select, merge (если могут оказаться дубли)).



Страницы: 1 вся ветка

Форум: "Базы";
Текущий архив: 2007.03.11;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.51 MB
Время: 0.042 c
4-1150801944
Cerberus
2006-06-20 15:12
2007.03.11
Глобальный хук на клавиатуру без dll.


15-1171313468
DemonP
2007-02-12 23:51
2007.03.11
Рассчитать состав типовой ЭВМ для сервера


8-1150456899
!_SM_!
2006-06-16 15:21
2007.03.11
Проиграть звук


15-1171561649
alien1769
2007-02-15 20:47
2007.03.11
Вакансия для программиста на С++


1-1169069194
Deeman
2007-01-18 00:26
2007.03.11
Полупрозрачные края





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский