Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Сравнение СУБД Новый топик    Ответить
 Реализиция INFORMATION_SCHEMA из стандарта SQL-92  [new]
1virtual!
Member

Откуда: Москва
Сообщений: 22
В каких БД реализивана INFORMATION_SCHEMA из стандарта SQL-92
1 мар 07, 14:51    [3848971]     Ответить | Цитировать Сообщить модератору
 Re: Реализиция INFORMATION_SCHEMA из стандарта SQL-92  [new]
tru55
Member

Откуда: СПб
Сообщений: 19788
Дык уже неоднократно говорилось, что стандарты имеют несколько уровней, а различные БД поддерживают далеко не все...

В Oracle эта фича НЕ поддерживается
1 мар 07, 15:08    [3849077]     Ответить | Цитировать Сообщить модератору
 Re: Реализиция INFORMATION_SCHEMA из стандарта SQL-92  [new]
1virtual!
Member

Откуда: Москва
Сообщений: 22
Стоит задача получать структуры различных баз данных (могут быть СУБД MS SQL, Accsess, FoxPro, Oracle, Flint, Clipper, и т.д., и т.д., и т.д.). В стандарте SQL-92, принятого в 1992 году, для этого вроде предусмотрена INFORMATION_SCHEMA (Информационная схема).
Например:
Информационная схема (InformationSchema) содержит описание структуры базы данных в виде набора представлений, определенных над базовыми таблицами, которые в свою очередь определены в отдельной схеме определений (DefinitionSchema).
http://podgoretsky.com/ftp/Docs/DB/SqlBook/sqlbook_10.html#313

Теперь осталось выяснить в каких БД это работает.
В MS SQL 2000 и MS SQL 2005 работает. Проверил на своих базах.
В MySQL 5.0 (вроде только 5.0?) тоже реализовано. Лично убедился.

Других СУБД у меня нет. Кто что использует подскажите как у вас.
1 мар 07, 15:21    [3849171]     Ответить | Цитировать Сообщить модератору
 Re: Реализиция INFORMATION_SCHEMA из стандарта SQL-92  [new]
1virtual!
Member

Откуда: Москва
Сообщений: 22
tru55
Дык уже неоднократно говорилось, что стандарты имеют несколько уровней, а различные БД поддерживают далеко не все...

В Oracle эта фича НЕ поддерживается


В том-то и дело!! Мне какраз и надо выяснить какие БД поддерживают и сообщить руководству.
За Oracle спасибо.
1 мар 07, 15:25    [3849204]     Ответить | Цитировать Сообщить модератору
 Re: Реализиция INFORMATION_SCHEMA из стандарта SQL-92  [new]
tru55
Member

Откуда: СПб
Сообщений: 19788
Хм-м-м...
Как описано в стандарте - честно говоря не знаю, не читал, м.б. там это чисто логическое понятие.
Например, Clipper (FoxPro, Paradox) - это просто набор файлов (каждая таблица или индекс в своем файле), поэтому там понятие схемы базы данных вообще условно. Какой файл программа откроет - с тем и работает.
А в Oracle данные об объектах запрашиваются из набора представлений, например all_tables и all_tab_columns - сведения о таблицах и их колонках.
Так что, насчет "универсального запроса" - ничего не выйдет
1 мар 07, 15:31    [3849263]     Ответить | Цитировать Сообщить модератору
 Re: Реализиция INFORMATION_SCHEMA из стандарта SQL-92  [new]
1virtual!
Member

Откуда: Москва
Сообщений: 22
Как я понял, MS SQL, при запросе к таблице INFORMATION_SCHEMA, просто собирает метаданные оттуда, где он их держит, и в виде таблицы возвращает. Поэтому, то что БД - это просто набор файлов вроде не важно.

Кто юзал FoxPro или Clliper ОТЗОВИТЕСЬ!
1 мар 07, 16:12    [3849538]     Ответить | Цитировать Сообщить модератору
 Re: Реализиция INFORMATION_SCHEMA из стандарта SQL-92  [new]
tru55
Member

Откуда: СПб
Сообщений: 19788
1virtual!
Как я понял, MS SQL, при запросе к таблице INFORMATION_SCHEMA, просто собирает метаданные оттуда, где он их держит, и в виде таблицы возвращает. Поэтому, то что БД - это просто набор файлов вроде не важно.

Кто юзал FoxPro или Clliper ОТЗОВИТЕСЬ!


Я с Clipper в общей сложности работал 8 лет.
В исходном виде там SQL вообще не присутствует, используется навигационный доступ к таблицам. Поэтому здесь можно говорить только о файлах.
В настоящее время в других средствах (например, в Delphi) работа с файлами *.dbf, *.db через SQL эмулируется с пом. ODBC и др. средств. Но, еще раз повторяю, поскольку каждая таблица - отдельный файл, то нигде не хранится список всех таблиц так называемой БД (можно узнать только структуру отдельной таблицы, которая хранится в заголовке файла). Возможно, эмулирующие средства позволяют создать где-то в своих собственных структурах подобное хранение (если человек туда этот список вручную введет), но это уже вопрос этих средств
1 мар 07, 16:26    [3849639]     Ответить | Цитировать Сообщить модератору
 Re: Реализиция INFORMATION_SCHEMA из стандарта SQL-92  [new]
1virtual!
Member

Откуда: Москва
Сообщений: 22
tru55

Я с Clipper в общей сложности работал 8 лет.
В исходном виде там SQL вообще не присутствует, используется навигационный доступ к таблицам. Поэтому здесь можно говорить только о файлах.
В настоящее время в других средствах (например, в Delphi) работа с файлами *.dbf, *.db через SQL эмулируется с пом. ODBC и др. средств. Но, еще раз повторяю, поскольку каждая таблица - отдельный файл, то нигде не хранится список всех таблиц так называемой БД (можно узнать только структуру отдельной таблицы, которая хранится в заголовке файла). Возможно, эмулирующие средства позволяют создать где-то в своих собственных структурах подобное хранение (если человек туда этот список вручную введет), но это уже вопрос этих средств


В Clipper через ODBC можно узнать структуру отдельной таблицы, которая хранится в заголовке файла?
1 мар 07, 16:55    [3849837]     Ответить | Цитировать Сообщить модератору
 Re: Реализиция INFORMATION_SCHEMA из стандарта SQL-92  [new]
tru55
Member

Откуда: СПб
Сообщений: 19788
уже было
https://www.sql.ru/forum/actualthread.aspx?tid=391291
1 мар 07, 17:34    [3850110]     Ответить | Цитировать Сообщить модератору
Все форумы / Сравнение СУБД Ответить