DECLARE
Str my_tab.street%TYPE;
BEGIN
(список команд SQL и PL/SQL)
EXCEPTION
(обработчики исключений)
END;
6.6. Преобразование типов
В PL/SQL можно выполнять преобразования скалярных типов данных, принадлежащим разным семействам типов. В пределах одного семейства типы данных можно преобразовывать произвольно, за исключением ограничений, налагаемых на переменные. Например, переменную типа CHAR(10) нельзя преобразовать в переменную VARCHAR2(5), так как будет недостаточно места для хранения переменной. Из-за ограничение точности и масштаба нельзя преобразовать переменную типа NUMBER(3,2) в переменную типа NUMBER(3) и наоборот. При таких нарушениях компилятор не будет выдавать ошибки, но во время выполнения программы будет зафиксирована ошибка.
6.6.1. Явное преобразование типов
PL/SQL содержит встроенные функции, предназначенные для преобразования типов. В таблице 6.1 показаны енкоторые функции преобразования типов данных.
Таблица 6.1. Функции преобразования типов данных PL/SQL и SQL
Функция |
Описание |
Семейства типов, допустимых для преобразования |
TO_CHAR |
Преобразует аргумент к типу VARCHAR2 в зависимости от указанного формата (указание формата необязательно) |
Числовые тиы, типы даты |
TO_DATE |
Преобразует аргумент к типу DATE в зависимости от указанного формата (указание формата необязательно) |
Символьные типы |
TO_NUMBER |
Преобразует аргумент к типу NUMBER в зависимости от указанного формата (указание формата необязательно) |
Символьные типы |
В примере показано применение функции TO_CHAR для преобразования системной даты к символьному типу:
DECLARE
A varchar2(10);
BEGIN
A := TO_CHAR (sysdate, ’dd.mm.yyyy’);
EXCEPTION
(обработчики исключений)
END;
6.6.2. Неявное преобразование типов
В PL/SQL выполняется автоматическое преобразование типов данных указанных ниже семейств, когда это возможно:
· строк символов и чисел
· строк символов и дат
В примере, приведенном ниже, выполняется неявное преобразование строки в дату:
DECLARE
D date;
BEGIN
D := ’01.09.2009’;
EXCEPTION
(обработчики исключений)
END;
Хотя такие преобразования выполняются во многих случаях, все-таки рекомендуется использовать функции явного преобразования.
6.7. Порядок вычисления выражений
Порядок выполнения операций, входящих в выражения, определяется приоритетом операций. Для изменения порядка вычисления используются круглые скобки.
Приоритет операций:
1. вычисления в круглых скобках ( )
2. вычисления значений функций
3. унарные операции not
4. операции типа умножение *, /, mod, and
5. операции типа сложение +, -, or, xor
6. операции сравнения >, <, <=, >=, =, <>
Следует учесть, что в языке PL/SQL логические операции имеют более высокий приоритет, чем операции отношения. В связи с этим, в сложных логических выражениях обычно необходимо расставлять скобки. Если, например, b и с имеют тип INTEGER , то выражение
а = b and с < d
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.