Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
кожин / Лекции / Лекция 07 PL_SQL.doc
Скачиваний:
31
Добавлен:
20.03.2016
Размер:
172.03 Кб
Скачать

Разработка программ с использованием языка PL/SQL

    1. Блок программы

DECLARE

Операторы объявления

BEGIN

Операторы исполнения

EXEPTION

Операторы обработки исключительных ситуаций

END;

«- -» комментарии

Переменные объявляются после ключевого слова DECLARE

ИМЯ [CONSTANT] ТИП [:=значение];

Длина имени переменной ограничена 30 символами.

Типы данных ORACLE.

Тип

Диапазон представления

BINARY_INTEGER

-2 147 483 648 +2 147 483 647

NATURAL

0 +2 147 483 647

POSITIVE

1 +2 147 483 647

NUMBER

±1.0E-129 ± 9.99E125

DEC

=/=

DECIMAL

=/=

DOUBLE_PRECISION

=/=

FLOAT

=/=

INT

=/=

INTEGER

=/=

REAL

=/=

SMALLINT

=/=

CHAR

Строка до 32767 символов ASCII

CHARACTER

=/=

STRING

=/=

VARCHAR

Строка переменной длины до 32767 символов ASCII

VARCHAR2

=/=

LONG

Строка до 2 147 483 647 символов ASCII

RAW

Двоичные данные до 32767 байт

LONG RAW

Двоичные данные до 2 147 483 647 байт

BOOLEAN

TRUE или FALSE

DATE

От 1 января 14712 до н.э. до 31 декабря 314712 н.э.

ROWIND

18 байт в формате ВВВВВВВВ.RRRR.FFFF

Объявления переменной с типом атрибута таблицы

A2 T1.P1%TYPE

где - Т1 - имя таблицы, Р1 – имя поля (атрибута) таблицы.

Объявления переменной для строки таблицы

A3 T1%ROWTYPE

    1. Записи

Записи объявляются за два шага: сначала объявляется тип записи, а затем переменная этого типа.

TYPE имя_типа IS RECORD (имя_поля тип, имя_поля тип …) ;

имя_переменной имя_типа ;

    1. Массивы

TYPE имя IS TABLE OF тип_столбца INDEX BY BINARY_INTEGER;

Имя переменной имя_типа_таблицы

обращение Имя_таблицы (значение ключа).

MAS (2);

    1. курсоры

CURSOR имя IS тело запроса;

    1. Переменные для генерации исключительных ситуаций

Имя EXCEPTION;

    1. Функции преобразование типов данных

Таблица 2

Исходный

Тип

Тип результата

CHAR

DATE

NUMBER

RAW

ROWIND

CHAR

TO_DATE

TO_NUMBER

HEXTORAW

CHARTOROWIND

DATE

TO_CHAR

NUMBER

TO_CHAR

TO_DATE

RAW

RAWTOHEX

ROWIND

ROWIND

TOCHAR

TO_CHAR (x {NUMBER | DATE} [,f VARCHAR2 [,n]]);

TO_NUMBER(x {CHAR | VARCHAR2] [,f VARCHAR2 [,n]]);

TO_DATE(x {CHAR | VARCHAR2] [,f VARCHAR2 [,n]]);

где х – имя переменной соответствующего типа; f – форматная строка преобразования

Элемент

Формат

Описание

Год

YYYY,YY

Год цифрами, четыре или две цифры

YEAR

Год прописью

Месяц

MM

Две цифры месяца

RM

Римское обозначение месяца

MONTH

Название месяца прописью

MON

Краткое имя месяца

День

DDD

Номер дня в году

DD

Номер дня в месяце

D

Номер дня в неделе

DAY

Название дня

DY

Краткое название дня

Час

HH12,HH24

Часы в 12 – или 24 часовом варианте

Минуты

MI

Минуты

Секунды

SSSS,SS

Секунды, четыре или две цифры

Формат для преобразования строки символов в число или числа в строку символов имеет вид:

Элемент

Описание

9

Значащая цифра

0

Ведущий ноль

$

Ведущий символ $

B

Ведущий символ пробел

MI

Знак минуса в конце

S

Ведущий знак числа ( +, -)

,

Знак запятой

.

Знак точки

V

Умножение на степень 10

EEE

Научный формат

RN

Римское счисление

IF условие THEN

Тело ;

ELSE

Тело ;

END IF;

IF условие THEN

Тело;

ELSIF условие THEN

Тело ;

ELSE

Тело;

END IF;

LOOP

Тело

END LOOP;

When Условие LOOP

Тело

END LOOP;

FOR счетчик IN [REVERSE] От .. До LOOP

Тело

END LOOP;

Выход из цикла EXIT или EXIT WHEN условие.

Соседние файлы в папке Лекции