|
Программирование >> Преобразование значений null
Запросите 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. Она упоминается и используется практически во всех рецептах данной главы. Настоятельно рекомендую досконально разобраться в этом вопросе.
|
© 2006 - 2024 pmbk.ru. Генерация страницы: 0.001
При копировании материалов приветствуются ссылки. |