powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как скопировать таблицу без использования exp, imp?
19 сообщений из 19, страница 1 из 1
Как скопировать таблицу без использования exp, imp?
    #32175134
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
Приветствую!
Проблема в следующем - в БД существуют 2 юзера, имеющих практически идентичный набор таблиц (с той разницей, что у одного из них могут отсутствовать некоторые таблицы, присутствующие у второго). Вопрос следующий - можно ли организовать копирование недостающих таблиц от одного юзера ко второму без использования exp, imp? Использование указанных утилит нежелательно, потому что данный алгоритм будет вызываться из программы (возможно, существенное количество раз) и отрицательно скажется на ее быстродействии.
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175137
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
"CREATE AS SELECT" тут не подходит, потому что в этом случае новая таблица создастся без индексов, которые также нужно скопировать.
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175168
Фотография MaxU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
м-да!

с дизайном у вас явные проблемы, ну да ладно...

> и отрицательно скажется на ее быстродействии
быстрее exp/imp в вашем случае вы врядли что-нибудь выдумаете

а можно спросить для чего такое надо?
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175181
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
> м-да!
> с дизайном у вас явные проблемы, ну да ладно...
Почему? :)

> > и отрицательно скажется на ее быстродействии
> быстрее exp/imp в вашем случае вы врядли что-нибудь выдумаете
Жаль :( Хотя на всякий случай уточню, что тут имеется в виду не быстродействие самих утилит, а именно потеря времени на самом вызове exe-шников в программе. Интерфейс к БД реализован через OCI, и хочется найти возможность реализовать аналогичный функционал без необходимости вызова "внешних программ".

> а можно спросить для чего такое надо?
Долго объяснять :) Вкратце - программа представляет из себя инструментальное средство по запуску скриптов обновления БД (это не мной придумано :), такие требования). Проблема появилась из-за того, что скрипты обновления используют двух юзеров для получения и обработки данных и "рассчитывают" на то, что состав необходимых для их работы таблиц идентичен у обоих. Моя задача в данном случае - обеспечить эту "идентичность".
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175218
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создать структуру таблиц у обоих пользователей с индексами.
Данные перебрасывать через:
INSERT /*+APPEND */ INTO <user2.table1> SELECT * FROM <user1.table1>;
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175231
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
2softbuilder:
Меня как раз наиболее волнует первый пункт - универсальный алгоритм (на момент запуска неизвестно, какие именно таблицы придется обрабатывать) создания копии (не обязательно заполненной данными) таблицы с сохранением индексов. Данные-то перебросить уже не проблема...
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175259
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У тебя нет скриптов создания таблиц?
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175269
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
Нет :(
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175361
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Значит сам скрипт составь из определения в словаре данных
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175410
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
А можно поподробнее? Я в этом вопросе не очень шарю: что конкретно нужно сделать, чтобы получить скрипт создания существующей таблицы? Или может ссылку какие есть, почитать на эту тему?
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175423
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тебе нужно проанализировать вью описания таблиц, индексов, ограничений:
dba_tables,
dba_tab_columns,
dba_indexes,
dba_ind_columns,
dba_constraints,
dba_cons_columns
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175425
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проанализировать не с точки зрения Oracle, а с точки зрения исследования структуры через вью.
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175427
Фотография RedPank
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Le
У тебя DBA Studio есть ?

Кликаешь правой клавишей мышы на объекте и выбираешь Show Object DDL
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175457
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
2 Softbuilder:
М-да... понятно. Нехилое выходит мероприятие... 8(( Была надежда на то, что на эту тему существуют какие-то вспомогательные средства, чтобы как раз "не опускаться" до разбора структуры по всем составляющим и составления скрипта на этой основе...
2 RedPank:
Проблема не в том, чтобы самому узнать скрипт создания таблицы, а в том, чтобы по наличию таблицы в БД сгенерировать его программным образом... Разве что научить прогу заходить в DBA Studio и щелкать правой клавишей мыши...
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175461
Фотография softy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как это лучше сделать. Я бы сделал так:
включил бы трассировку, потом действительно зашёл бы в прогу типа DBA Studio и сделал бы просмотр структуры. А потом в трейсе посмотрел бы последовательность запросов.
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175519
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
Сэнкс, буду разбираться...
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32175713
Фотография MaxU
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
какая версия сервера?

если девятка, то почитай о "dbms_metadata"
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32176440
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
> какая версия сервера?
> если девятка,
Она самая, 9.2

> то почитай о "dbms_metadata"
Впервые слышу - а где это можно почитать (в смысле, какой раздел документации)?..
...
Рейтинг: 0 / 0
Как скопировать таблицу без использования exp, imp?
    #32176750
Le
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Le
Гость
О, шикарная штука! 8) Спасибо!
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Как скопировать таблицу без использования exp, imp?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]