|
|
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
Приветствую! Проблема в следующем - в БД существуют 2 юзера, имеющих практически идентичный набор таблиц (с той разницей, что у одного из них могут отсутствовать некоторые таблицы, присутствующие у второго). Вопрос следующий - можно ли организовать копирование недостающих таблиц от одного юзера ко второму без использования exp, imp? Использование указанных утилит нежелательно, потому что данный алгоритм будет вызываться из программы (возможно, существенное количество раз) и отрицательно скажется на ее быстродействии. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 13:52:57 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
"CREATE AS SELECT" тут не подходит, потому что в этом случае новая таблица создастся без индексов, которые также нужно скопировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 13:55:18 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
м-да! с дизайном у вас явные проблемы, ну да ладно... > и отрицательно скажется на ее быстродействии быстрее exp/imp в вашем случае вы врядли что-нибудь выдумаете а можно спросить для чего такое надо? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 14:18:02 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
> м-да! > с дизайном у вас явные проблемы, ну да ладно... Почему? :) > > и отрицательно скажется на ее быстродействии > быстрее exp/imp в вашем случае вы врядли что-нибудь выдумаете Жаль :( Хотя на всякий случай уточню, что тут имеется в виду не быстродействие самих утилит, а именно потеря времени на самом вызове exe-шников в программе. Интерфейс к БД реализован через OCI, и хочется найти возможность реализовать аналогичный функционал без необходимости вызова "внешних программ". > а можно спросить для чего такое надо? Долго объяснять :) Вкратце - программа представляет из себя инструментальное средство по запуску скриптов обновления БД (это не мной придумано :), такие требования). Проблема появилась из-за того, что скрипты обновления используют двух юзеров для получения и обработки данных и "рассчитывают" на то, что состав необходимых для их работы таблиц идентичен у обоих. Моя задача в данном случае - обеспечить эту "идентичность". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 14:25:34 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
Создать структуру таблиц у обоих пользователей с индексами. Данные перебрасывать через: INSERT /*+APPEND */ INTO <user2.table1> SELECT * FROM <user1.table1>; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 14:44:00 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
2softbuilder: Меня как раз наиболее волнует первый пункт - универсальный алгоритм (на момент запуска неизвестно, какие именно таблицы придется обрабатывать) создания копии (не обязательно заполненной данными) таблицы с сохранением индексов. Данные-то перебросить уже не проблема... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 14:51:09 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
У тебя нет скриптов создания таблиц? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:01:22 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
Нет :( ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 15:06:07 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
Значит сам скрипт составь из определения в словаре данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 16:11:23 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
А можно поподробнее? Я в этом вопросе не очень шарю: что конкретно нужно сделать, чтобы получить скрипт создания существующей таблицы? Или может ссылку какие есть, почитать на эту тему? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 16:34:51 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
Тебе нужно проанализировать вью описания таблиц, индексов, ограничений: dba_tables, dba_tab_columns, dba_indexes, dba_ind_columns, dba_constraints, dba_cons_columns ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 16:38:42 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
Проанализировать не с точки зрения Oracle, а с точки зрения исследования структуры через вью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 16:39:55 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
2 Le У тебя DBA Studio есть ? Кликаешь правой клавишей мышы на объекте и выбираешь Show Object DDL ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 16:41:46 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
2 Softbuilder: М-да... понятно. Нехилое выходит мероприятие... 8(( Была надежда на то, что на эту тему существуют какие-то вспомогательные средства, чтобы как раз "не опускаться" до разбора структуры по всем составляющим и составления скрипта на этой основе... 2 RedPank: Проблема не в том, чтобы самому узнать скрипт создания таблицы, а в том, чтобы по наличию таблицы в БД сгенерировать его программным образом... Разве что научить прогу заходить в DBA Studio и щелкать правой клавишей мыши... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 17:00:37 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
Как это лучше сделать. Я бы сделал так: включил бы трассировку, потом действительно зашёл бы в прогу типа DBA Studio и сделал бы просмотр структуры. А потом в трейсе посмотрел бы последовательность запросов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 17:03:26 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
Сэнкс, буду разбираться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 17:36:17 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
какая версия сервера? если девятка, то почитай о "dbms_metadata" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.06.2003, 23:07:55 |
|
||
|
Как скопировать таблицу без использования exp, imp?
|
|||
|---|---|---|---|
|
#18+
> какая версия сервера? > если девятка, Она самая, 9.2 > то почитай о "dbms_metadata" Впервые слышу - а где это можно почитать (в смысле, какой раздел документации)?.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.06.2003, 15:37:20 |
|
||
|
|

start [/forum/topic.php?fid=52&msg=32175181&tid=1990175]: |
0ms |
get settings: |
7ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
429ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
55ms |
get tp. blocked users: |
2ms |
| others: | 213ms |
| total: | 734ms |

| 0 / 0 |
