|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
25.08.2009, 22:22 | #1 |
Форумчанин
Регистрация: 26.12.2008
Сообщений: 146
|
Как разделить таблицу на много таблиц с количеством строк = 65535?
Всем доброго времени суток!
На работе есть табличка. В ней более 10 миллионов строк. Появилась задача - надо в явном виде (без всяких пивотов) выгрузить эту таблицу в экселевские файлы. Проблема в том, что в лист екселя 2003 влазит не больше 65536 строчек. Таким образом, необходимо разбить эту таблицу на более мелкие. Короче, вопрос такой: Как написать процедуру (или как это называется), которая создаст много табличек из исходной,в которых по 65536 строк, и которые будут называться (например) Табл1,...ТаблN. На работе вся БД на oracle. Запросы пишем в sql навигаторе. Я в sql практически ничего не понимаю. Могу только простетские запросы писать типа select.. from.. where... Так что прошу сильно не пинать. Всем заранее спасибо.
"Hello, world!" - 17 errors 56 warnings
|
25.08.2009, 22:45 | #2 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
а вам точно нужно 10^7/65536 таблиц?
раз уж у вас есть уже одна таблица с данными может просто на дельфи слабать экспорт в эксель (примеров полно)?! еще вариант - перейти на 2007й офис |
25.08.2009, 23:10 | #3 |
Форумчанин
Регистрация: 26.12.2008
Сообщений: 146
|
нет...
Дельфи на работе нет. Нужно действительно 10^7/65536 таблиц. ПС - это не так уж и много) Всего то 150) ППС: пожалуйста, по возможности, не надо говорить, что мне это не нужно. Просто, если ктото знает, скажите как поделить табличку и все. Мне кажется, что это не сложно.
"Hello, world!" - 17 errors 56 warnings
|
25.08.2009, 23:59 | #4 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
создать таблички не так и долго
остается вопрос: как вы будете перегонять данные из оракла в эксель? как ответите на этот вопрос - помогу с запросом |
26.08.2009, 06:34 | #5 |
Форумчанин
Регистрация: 26.12.2008
Сообщений: 146
|
из оракла в эксель данные перегоняются сл. образом:
В екселе: данные, сводная таблица, импорт внешних данных, выбирается табличка, нажимается ОК и все. Сформируется сводная таблица, в которой 65536 строк. Если её развернуть (щелкнуть два раза на итог), то как раз получится кусок таблицы из БД.
"Hello, world!" - 17 errors 56 warnings
|
26.08.2009, 18:28 | #6 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
так уж вышло, что весь день вне компа
вот на работе где-то у меня была приблуда для экспорта данных в эксель с разбивкой под старый вариант офиса с ограничением в 65000 строк, но раз хочется дублировать данные, то получайте скрипт проверить не на чем пока (завтра могу потестить, может будет что оптимизировать...) - так что некоторые моменты возможно придется подправлять + названия таблиц и полей затачивать под себя в обязательном порядке Код:
Последний раз редактировалось soleil@mmc; 26.08.2009 в 18:42. |
26.08.2009, 21:56 | #7 |
Форумчанин
Регистрация: 26.12.2008
Сообщений: 146
|
ух ты!
Спасибо, посмотрю обязательно... Сегодня на работе пришла в голову другая мысль: Что если к большой таблице добавить поле, которое будет считаться как Целая часть(Число строк в таблице/65536) (пусть это будет поле Х). Потом импортировать эту табличку в эксель, и из неё уже по каждому из вновь добавленного поля (по двойному клику) получать листик с 65536 записями. Впринципе это и было проделано сегодня, но есть один ньюанс: Допустим в исходной таблице есть поле Номер - не уникальное, то есть могут встречаться строчки с одинаковыми значениями этого поля. Так вот: строчки с одинаковым значением поля Номер не могут находиться на разных листах рабочей книги. Таким образом, приходится вручную сортировать и перетаскивать строчки из одного листа в другой. Хотя перед тем, как добавить поле Х таблица была упорядочена по полю Номер, все равно приходится делать рутинную работу руками. Так вот, просьба к тем, кто понял, о чем я говорю, подскажите (или намекните), как автоматизировать процесс?
"Hello, world!" - 17 errors 56 warnings
|
26.08.2009, 23:45 | #8 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
таблица больше не изменяется? в смысле пользователи ее больше не редактируют?
запросом можно так получить (хотя, может есть еще какая-то оконная функа, которая сразу выдаст номер поддиапазона...) Код:
|
27.08.2009, 12:35 | #9 |
SQL-коддинг
Участник клуба
Регистрация: 16.01.2009
Сообщений: 1,192
|
добавочка - ExConverter (автор предлагает экспортить данные в XML и заливать их в эксель через шаблоны)
как бы там ни было я изначально за прогу на клиенте, которая будет выбирать данные из таблицы и экспортить их в эксель/калк (кому что больше нравится/доступно) ибо после подобных экспериментов бессмысленно засирается схема Последний раз редактировалось soleil@mmc; 27.08.2009 в 12:50. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Перевернуть и разделить. Много | Sac | Microsoft Office Excel | 4 | 24.08.2009 16:25 |
Количество строк с условием между таблиц | Deight | SQL, базы данных | 2 | 07.05.2009 01:14 |
Много таблиц, выборочное удаение строк | Ice_Juice | Microsoft Office Excel | 1 | 11.03.2008 09:05 |
как разделить текст на переменные | GAGARIN-NEW | Общие вопросы Delphi | 2 | 07.10.2007 15:24 |
как вывести число с ограниченным количеством цифр после запятой? delphi | Ensoph | Помощь студентам | 1 | 02.10.2007 07:50 |