Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 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
2-1134137750
Толян
2005-12-09 17:15
2005.12.25
переменая типа Memo


1-1133366543
legeyda
2005-11-30 19:02
2005.12.25
Ошибка dib.dcu в делфи


4-1129894565
shc
2005-10-21 15:36
2005.12.25
Отключение Alt+Tab под ХР


2-1134132952
sanich
2005-12-09 15:55
2005.12.25
Имборт из FoxPro в Firebird


5-1118427424
Wks
2005-06-10 22:17
2005.12.25
Активность фирмы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский