Я хочу получить команду на oracle sql
Вещи, которые я ищу для некоторой помощи с командой на Oracle DB.
Прямо сейчас я не рядом с этой базой данных, поэтому я не могу ничего попробовать.
Я запишу на бумаге ваши ответы, попробую их и дам вам знать.Пока немного информации:
Я использую OLE-соединение с базой данных с помощью c# OLE Connect, какую команду мне нужно выполнить, чтобы получить:
Первичный ключ каждой таблицы:
У меня уже есть SQL для первичного ключа, но я не знаю, как это сделать. выполните его, чтобы изменить кастинг вещей
"SELECT a.owner, a.TABLE_NAME, b.column_name
FROM all_constraints a, all_cons_columns b
WHERE a.constraint_type='P'
AND a.constraint_name=b.constraint_name
AND a.TABLE_NAME = 'CASTING'"
Edit: удалил If exist (я получу все таблицы и для каждой таблицы добавлю запрос drop table)
Но как это на oracle (пока я буду держать его я дам вам знать завтра утром 9-11 часов отныне я буду обновлять эту тему)
Как я проверяю, если некоторые столбцы is_identity
это означает, что это auto_increment
И когда я нашел его, как проверить
**"IDENT_SEED ,IDENT_INCR ,IDENT_CURRENT"**
Последнее:
Как я могу получить информацию от каждого таблица, такая информация:
column_name, data_type, is_nullable, character_maximum_length
Заранее благодарю вас за помощь
3 ответа:
select count(*) from all_tables where table_name = 'YOUR_TABLE_NAME_IN_UPPERCASE';
Возвращает 0, если таблица не существует (или ваш пользователь не имеет никаких прав доступа к этой таблице)
select column_name, data_type, nullable, data_length, data_scale, data_precision from all_tab_columns where table_name = 'YOUR_TABLE_NAME_IN_UPPERCASE';
Подробно описывает столбцы таблицы
И в Oracle нет такой вещи, как столбец identity, версия которого меньше 12c.
Спасибо вам, ребята Работа над проектом. Versiob - 11.42, поэтому автоматического включения нет И все работает идеально Вся информация о колонке работает Первичные ключи работают
Oracle не имеет никакого способа удалить таблицу с помощью предложения
if exists table
. Как лучший способ, просто отбросьте таблицу и проигнорируйте ошибку, используяBEGIN EXECUTE IMMEDIATE 'DROP TABLE mytable'; EXCEPTION WHEN OTHERS THEN NULL; END;
Если вы хотите получать уведомления, то используйте,
BEGIN EXECUTE IMMEDIATE 'DROP TABLE mytable'; EXCEPTION WHEN OTHERS THEN IF SQLCODE != -942 THEN RAISE; END IF; END;
Относительно деталей таблицы, запрос
ALL_TAB_COLUMNS
.И,
IDENTITY COLUMNS
доступны с Oracle12c
. На какой версии вы находитесь?Запрос,
select * from v$version
чтобы узнать версию вашей базы данных.Запрос
all_tab_identity_cols
дляIDENTITY COLUMNS
деталей.SELECT table_name, column_name, generation_type, identity_options FROM all_tab_identity_cols WHERE owner = 'TEST' ORDER BY 1, 2;
EDIT по запросу OP относительно
PRIMARY KEY
таблицы.В
all_constraints
столбецconstraint_type
будет иметь значениеP
для первичных ключей. Итак, в своем запросе поставьтеwhere constraint_type = 'P'
Ваш запрос, кажется, в порядке. Просто исполни его.