Программирование >>  Преобразование значений null 

1 ... 38 39 40 [ 41 ] 42 43 44 ... 219


Запросите DICT COLUMNS, чтобы описать столбцы заданного представления словаря данных:

select column name, comments from dict columns

Обсуждение

Генерировать SQL с помощью SQL особенно удобно для создания переносимых сценариев, таких, которые можно использовать при тестировании в разных средах. Кроме того, как видно из приведенных выше примеров, это пригодится и для обслуживания пакетов данных, и для облегчения поиска информации о нескольких объектах сразу. Создание SQL-выражений в SQL - чрезвычайно простая операция, и чем чаще вы ее выполняете, тем проще она становится. Представленные примеры должны стать хорошей базой для начала построения собственных динамических SQL-сценариев, потому что, откровенно говоря, здесь у вас вряд ли возникнут трудности. Проработайте примеры и все станет понятным.

Описание представлений словаря данных вбазеданных Oracle

Задача

Вы используете Oracle и не можете запомнить ни доступные представления словарей данных, ни описания их столбцов. Что еще хуже, у вас под рукой нет документации производителя.

Решение

Есть специальный рецепт для Oracle. Oracle не только поддерживает набор представлений словарей данных, но даже представления словарей данных для документирования представлений словарей данных. Все так замечательно взаимосвязано.

Сделайте запрос к представлению DICTIONARY (словарь), чтобы получить список представлений словарей данных и их назначений:

select table name, comments

from dictionary order by table name;

TABLE NAME COMMENTS

ALL ALL TABLES Description of all object and relational

tables accessible to the user

ALL APPLY Details about each apply process that

dequeues from the queue visible to the current user



Обсуждение

В те времена, когда набор документации Oracle не был так свободно доступен в сети, было чрезвычайно удобно иметь возможность доступа к представлениям DICTIONARY и DICTCOLUMNS. Зная только эти два представления, можно было получить информацию обо всех остальных представлениях и, следовательно, увидеть всю базу данных.

Даже сегодня информация о DICTIONARY и DICT COLUMNS не будет

лишней. Если нет достаточной уверенности в том, какое представление описывает данный тип объектов, можно создать групповой запрос. Например, чтобы понять, какие представления описывают таблицы схемы, пишем следующий запрос:

select table name, comments

from dictionary where table name LIKE %TABLE% order by table name;

Такой запрос возвращает все имена представлений словарей данных, в которые входит слово TABLE (таблица). В этом подходе используется преимущество довольно последовательного соглашения о присваивании имен представлениям словарей данных Oracle. Имена всех представлений, описывающих таблицы, вероятнее всего, будут включать слово TABLE . (Иногда, как в случае с ALL TAB COLUMNS, вместо TABLE используется сокращение TAB.)

where table name = ALL TAB COLUMNS; COLUMN NAME COMMENTS

OWNER

TABLE NAME Table, view or cluster name

COLUMN NAME Column name

DATA TYPE Datatype of the column

DATA TYPE MOD Datatype modifier of the column

DATA TYPE OWNER Owner of the datatype of the column

DATA LENGTH Length of the column in bytes

DATA PRECISION Length: decimal digits (NUMBER) or binary

digits (FLOAT)



Работа со строками

Данная глава посвящена работе со строками в SQL. Не надо забывать, что SQL разработан не для того, чтобы выполнять сложные операции над строками, поэтому подчас решение этих задач в SQL может показаться (и покажется) весьма громоздким и утомительным. Несмотря на ограниченность SQL в этом вопросе, есть несколько очень полезных встроенных функций, предоставляемых разными СУБД, и я попытался творчески подойти к их использованию. Данная глава, в частности, прекрасно иллюстрирует послание, которое я пытался передать во введении: SQL бывает хорош, плох и просто кошмарен. Надеюсь, из этой главы вы вынесете лучшее понимание того, что возможно и невозможно сделать со строками в SQL. Во многих случаях простота синтаксического разбора и преобразования строк просто поразительна, тогда как иногда SQL-запросы, которые приходится создавать для выполнения той или иной задачи, приводят в ужас.

Особенно важен первый рецепт, поскольку он используется в нескольких последующих решениях. Возможность посимвольного обхода строки пригодится во многих случаях. К сожалению, в SQL реализовать это не просто. Поскольку в SQL нет циклов (за исключением Oracle оператора MODEL), для обхода строки цикл приходится имитировать. Я называю эту операцию проход строки или проход по строке , ее техника описывается в самом первом рецепте. Это фундаментальная операция синтаксического разбора строк при использовании SQL. Она упоминается и используется практически во всех рецептах данной главы. Настоятельно рекомендую досконально разобраться в этом вопросе.



1 ... 38 39 40 [ 41 ] 42 43 44 ... 219

© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки.
Яндекс.Метрика