Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Выборка PL.SQL.docx
Скачиваний:
4
Добавлен:
20.07.2019
Размер:
316.25 Кб
Скачать
    1. Использование %type, %rowtype

%TYPE возвращает тип переменной или столбца таблицы после которой он написан. При этом ограничение NOT NULL не распространяется.

DECLARE

v_TempVar NUMBER(7,3) NOT NULL: 12.3;

v_AnotherVar v_TempVar%TYPE; — возвращает NUMBER (7,3)

Для объявление записей с теми же типами, которые имеют строки базы данных используется %ROWTYPE. Например:

DECLARE

v_RoomRecord rooms%ROWTYPE

    1. Подтипы, определяемые пользователями

Подтип (subtype) — это альтернативное имя для некоторого типа, с помощью которого можно огра­ничить множество значений, допустимых для переменных, имеющих данный подтип. С по­мощью подтипа можно дать типу альтернативное имя, которое более точно описывает назначение этого типа. Для объявления подтипа используется синтаксис:

SUBTYPE новый_тип IS исходный_тип;

где новьш_тип — имя нового подтипа, а исходный_тип указывает базовый тип. Базовый тип может быть либо заранее определенным типом, либо подтипом, либо ссылкой %TYPE.

    1. Преобразование типов данных

В PL/SQL можно выполнять преобразование скалярных типов данных, принадлежащих разным семей­ствам типов. В пределах одного семейства типы данных можно преобразовывать произвольно, за иск­лючением ограничений, налагаемых на переменные.

Например, переменную типа CHAR(10) нельзя преобразовать в переменную типа VARCHAR2(1), так как не будет хватать места для хранения значения этой переменной.

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

  1. Выражения и операции

Посредством выражений и операций осуществляется связывание переменных PL/SQL. С помощью опе­раций определяются способы присваивания переменным конкретных значений и способы работы с эти­ми значениями. Выражение (expression) — это некоторая последовательность переменных и литералов, разделенных знаками операций, или операторами (operators). Значение выражения определяется значе­ниями переменных и литералов, составляющих это выражение, а также описанием используемых опера­ций.

    1. Присваивание

Ее синтаксис таков: переменная := выражение,

Операнд это аргумент операции. В операциях PL/SQL используется либо один аргумент (унарная, или одноместная, операция), либо два аргумента (бинарная, или двухместная, операция).

Для символьных типов существует лишь одна операция — это операция конкатенации, или сцепления (| |). При по­мощи данной операции соединяются две строки символов (или аргументы, которые могут быть неявно преобразованы в строки символов).

=

Если все операнды в выражении конкатенации имеют тип CHAR, то и оно само имеет тип CHAR. Если же хотя бы один операнд имеет тип VARCHAR2, выражение имеет тип VARCHAR2. Считается, что строковые литералы имеют тип CHAR.

    1. Логические выражения

Но всех управляющих структурах PL/SQL (за исключением GOTO) используются логические выраже­ния, называемые также условиями. Логическое, или булево, выражение — это любое выражение, которое даст в результате логическое значение (TRUE (истина), FALSE (ложь) или NULL).

Таблица истинности логических операторов:

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

Операция Описание

= Равно (равенство)

!= Не равно (неравенство)

< Меньше

> Больше

<= Меньше или равно

>= Больше или равно

В операции IS NULL значение TRUE возвращается только тогда, когда операндом является NULL. NULL-зиачения не могут быть проверены на истинность при помощи операций отношения, так как лю­бое выражение отношения с NULL в качестве операнда возвращает NULL.

Операция LIKE (подобие) применяется для сопоставления с некоторым образцом строк символов, подобно тому, как это делается в регулярных выражениях системы Unix. Знак подчеркивания (_) соот­ветствует только одному символу, а знак процента (%) — нулю и более символов. Выражения ниже возвращают TRUE:

В операции BETWEEN (между) операции <= и >= объединяются в одном выражении. Например, при­веденное ниже выражение возвращает ложное значение (FALSE):

100 BETWEEN 110 AND 120

а это выражение возвращает TRUE:

100 BETWEEN 90 AND 110

Результатом операции IN (в) будет истинное значение, когда первый операнд содержится в наборе, определяемом вторым операндом. Например, результат этого выражения — FALSE:

'Scott' IN ('Mike', 'Pamela', 'Fred')

Если в наборе содержатся NUI.L-значения, они игнорируются, так как при сравнении некоторого значения с NULL-значением всегда будет возвращаться NULL.