Форум: "Базы";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];
ВнизПолучение информации о Primary Key Найти похожие ветки
← →
Александр_н (2005-11-02 16:21) [0]Подскажите, как можно из таблицы извлечь программным путём информацию о том, какое поле является ключевым (PRIMARY KEY). Спасибо.
← →
ANB © (2005-11-02 16:30) [1]Тип БД надо бы указать.
← →
Sergey13 © (2005-11-02 16:31) [2]http://www.citforum.ru/database/interbase/index.shtml
← →
Александр_н (2005-11-02 16:31) [3]ANB: Oracle
← →
Sergey13 © (2005-11-02 16:39) [4]2[3] Александр_н (02.11.05 16:31)
См. вьюхи начинающиеся на all_ или user_ и дальше по аглицки название того что надо. В данном случае all_constraints и тому подобное.
← →
ANB © (2005-11-02 16:39) [5]Тады не есть великая проблема.
select Uc.Table_Name
,Ucc.Column_Name
,Ucc.position
from User_Constraints Uc, User_Cons_Columns Ucc
where Constraint_Type = "P"
and Ucc.Constraint_Name = Uc.Constraint_Name
order by Uc.Table_Name, Ucc.Column_Name, Ucc.position
← →
ANB © (2005-11-02 16:40) [6]Ну еще условие на имя конкретной таблицы наложить надо.
← →
Sergey13 © (2005-11-02 16:44) [7]2Александр_н (02.11.05 16:21)
А тригеры и прочий ПЛ/СКЛ тоже переносить будешь? 8-)
← →
ANB © (2005-11-02 16:59) [8]А еще кузяво перенести вьюхи, сиквенсы, пакеты и прочее. А то может и не заработать.
← →
Александр_н (2005-11-02 17:14) [9]Спасибо 8-), но достаточно только имена и тип полей и какое поле ключевое.
← →
Val © (2005-11-02 17:19) [10]получите ддл нужных объектов и пройдитесь replace по нему.
← →
ANB © (2005-11-02 17:25) [11]
> Александр_н (02.11.05 17:14) [9]
Ключевых полей может быть несколько. Поэкспериментируй с запросом.
> Val © (02.11.05 17:19) [10]
А запости плиз код, который генерит DDL таблицы.
← →
Val © (2005-11-02 17:37) [12]>ANB © (02.11.05 17:25)
зачем? в любом инструментарии для разработки(типа SQL Navigator etc.) д.б. что-то типа "извлечь ддл". если надо автоматизировать, то достаем текст из системной таблички.
← →
ANB © (2005-11-02 17:54) [13]
> Val © (02.11.05 17:37) [12]
У автора стоит задача перенести данные из оракла в другую субд на автомате. И как он в этот автомат вызов функций навигатора запихает ?
> то достаем текст из системной таблички.
- из какой ?
← →
Val © (2005-11-03 12:00) [14]>[14] ANB © (02.11.05 17:54)
У автора стоит задача ...
это я должен был протелепатить?
способ получения ддл зависит от количества переносимых объектов - если их небольшое кол-во, то лучше получать, анализировать, изменять ддл "руками".
- из какой ?
зависит от объекта, но для таблиц, конечно, только доставать инфу и генерить ддл самому, думаю.
← →
Александр_н (2005-11-03 16:20) [15]ANB Задача именно такова. И так как опыта работы с системными таблицами у меня нет, то был бы рад получить пример, как это сделать, желательно работающий 8-).
← →
Александр_н (2005-11-03 16:32) [16]Примечание: Работаю с помощью ODAC-компонентов
← →
ANB © (2005-11-03 17:43) [17]
> Александр_н (03.11.05 16:20) [15]
Ну, полный пример писать лениво. Кстати, если нужно перекачивать много данных - лучше на DOA перейти. Для доставания инфы о таблицах нужно использовать системные вьюхи. Правда на FK они тормозят, мне пришлось ускорять это дело через запрос напрямую к системным таблицам. Если очень нужно - могу выслать модуль, который просто качает структуру схемы в мои служебные таблицы. Переделаешь его в скриптогенератор. И для общего развития выполни запросы :
select * from ALL_VIEWS where View_Name like "ALL_%"
и
select * from ALL_VIEWS where View_Name like "USER_%"
Получишь список полезных вьюх.
← →
ANB © (2005-11-03 17:44) [18]ЗЫ. Сами одак-компоненты тебе вряд ли помогут.
Страницы: 1 вся ветка
Форум: "Базы";
Текущий архив: 2005.12.25;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.015 c