Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.12.25;
Скачать: CL | DM;

Вниз

Получение информации о 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;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.043 c
14-1133349455
Post
2005-11-30 14:17
2005.12.25
Framework SDK


3-1131019475
DelphiLexx
2005-11-03 15:04
2005.12.25
Подтвердить транзакцию в процедуре


2-1133111620
pohil
2005-11-27 20:13
2005.12.25
Внедрение кода в исполняемый процесс


4-1130414953
Rentgen
2005-10-27 16:09
2005.12.25
Как можно сменить программно пароль учетной записи (текущей)


2-1134100759
root911
2005-12-09 06:59
2005.12.25
Компонент