Поперечные профили набережных и береговой полосы: На городских территориях берегоукрепление проектируют с учетом технических и экономических требований, но особое значение придают эстетическим...
Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...
Топ:
Проблема типологии научных революций: Глобальные научные революции и типы научной рациональности...
Эволюция кровеносной системы позвоночных животных: Биологическая эволюция – необратимый процесс исторического развития живой природы...
Устройство и оснащение процедурного кабинета: Решающая роль в обеспечении правильного лечения пациентов отводится процедурной медсестре...
Интересное:
Подходы к решению темы фильма: Существует три основных типа исторического фильма, имеющих между собой много общего...
Мероприятия для защиты от морозного пучения грунтов: Инженерная защита от морозного (криогенного) пучения грунтов необходима для легких малоэтажных зданий и других сооружений...
Отражение на счетах бухгалтерского учета процесса приобретения: Процесс заготовления представляет систему экономических событий, включающих приобретение организацией у поставщиков сырья...
Дисциплины:
2022-12-20 | 24 |
5.00
из
|
Заказать работу |
Блок в PL/SQL.
Именованый и неименованый (анонимный – при отсутствии заголовка) блок.
Раздел выполнения может наряду с программным кодом содержать произвольное число других (вложенных) блоков PL/SQL.
Пример блока PL/SQL (анонимного) в SQL*Plus:
SET SERVEROUTPUT ON
DECLARE
var VARCHAR2(20);
var1 var%TYPE;
BEGIN
/*
комментарий
*/ -- строчный комментарий
NULL; -- пустой оператор, ничего не делать
var1:= 'Hello world'; -- оператор присвоенния
DBMS_OUTPUT.PUT_LINE (var1); -- обращение к процедуре
BEGIN -- вложеный блок – тоже оператор
DBMS_OUTPUT.PUT_LINE ('Hello once more');
END; -- конец вложеного блока
END;
/
Основные типы и структуры данных
Набор типов переменных в PL/SQL отличен от набора типов в Oracle SQL. Начиная с версии 9 это чистое расширение, так как с этой версии СУБД PL/SQL автоматически поддерживает все типы Oracle SQL за счет использования общего одного модуля обработки SQL-запросов (до этого PL/SQL использовал собственную SQL-машину).
Все переменные в PL/SQL можно отнести к одному из следующих видов:
Вид данных | Описание |
Скалярный | Переменные, представляющие собой ровно одно значение (числовое, дату и т.д.) |
Составной | Переменные, представляющие именованную группу значений (запись, массив) |
Ссылка | Ссылка на объект или курсор |
LOB | Указание на массив большого размера |
Скалярные переменные
Числовые типы
Делятся на типы с десятичным хранением (NUMBER) и с двоичным (целые числа типов BINARY_INTEGER и PLS_INTEGER).
Подтипы типа NUMBER:
Тип PL/ SQL | Совместимость | Соответствующий тип в Oracle |
DEC(точность, масштаб) | ANSI | NUMBER(точность, масштаб) |
DECIMAL(точность, масштаб) | IBM | NUMBER(точность, масштаб) |
DOUBLE PRECISION | ANSI | NUMBER |
FLOAT(двоичная точность) | ANSI, IBM | NUMBER |
INT | ANSI | NUMBER(38) |
INTEGER | ANSI, IBM | NUMBER(38) |
NUMERIC(точность, масштаб) | ANSI | NUMBER(точность, масштаб) |
REAL | ANSI | NUMBER |
SMALLINT | ANSI, IBM | NUMBER(38) |
Подтипы BINARY_INTEGER: NATURAL, NATURALN (вариант с NOT NULL), POSITIVE, POSITIVEN (вариант с NOT NULL), SIGNTYPE (-1, 0, 1).
Тип PLS_INTEGER по внешнему проявлению не отличается от BINARY_INTEGER, но имеет формат хранения компьютера, а не собственный двоичный формат фирмы Oracle, что делает его более производительным при больших вычислениях. Однако с версии 10 внутренний формат BINARY_INTEGER приведен к формату PLS_INTEGER и разницы между этими типами нет совсем.
Строковые типы
Тип | Описание |
CHAR | Строки фиксированной длины до 32767 байт (то есть больше, чем предел в 2000 байт в Oracle 7 и 4000 байт в Oracle 8 для хранимых в БД строк) |
VARCHAR2 | Строки переменной длины до 32767 байт (то есть больше, чем предел в 2000 байт в Oracle 7 и 4000 байт в Oracle 8 для хранимых в БД строк) |
NCHAR NVARCHAR2 | NLS-символьные типы. Позволяют обрабатывать символьные данные в мультибайтовой кодировке Unicode. |
LONG | Строки переменной длины до 32767 байт. Тип сохранен для обратной совместимости; в частности встречается в некоторых справочных таблицах |
RAW | Байтовая строка переменной длины до 32767 байт (в версии 7 было 2000 байт). Не перекодируется при передаче по Oracle Net |
LONG RAW | Байтовая строка переменной длины до 32767 байт. Тип сохранен для обратной совместимости версий Oracle |
ROWID | Двоичный массив фиксированной длины для хранения физического адреса данных Oracle в шестнадцатеричном формате BBBBBBBB.RRRR.FFFF (Oracle 7) и в формате OOOOOOFFFBBBBBBRRR (Oracle 8) |
UROWID (Oracle 8.1) | «Универсальный» формат для ROWID: шестнадцатеричная строка переменной длины (до 4000 байт) с логическим значением ROWID. Используется для хранения адресов строк в индексно организованных (index organized) таблицах или в таблицах DB2 (черех шлюз) |
Моменты времени и интервалы
То же, что в Oracle SQL плюс несколько специальных подтипов.
Следующие подтипы в PL/SQL используются для передачи параметров с максимально возможной точностью («без ограничения точности»):
Подтип... | ... соответствует типу |
TIMESTAMP_UNCONSTRAINED | TIMESTAMP (9) |
TIMESTAMP_TZ_UNCONSTRAINED | TIMESTAMP (9) WITH TIME ZONE |
YMINTERVAL_UNCONSTRAINED | INTERVAL YEAR (9) TO MONTH |
DSINTERVAL_UNCONSTRAINED | INTERVAL DAY (9) TO SECOND (9) |
TIME_UNCONSTRAINED | TIME (9)(*) |
TIME_TZ_UNCONSTRAINED | TIME (9) WITH TIME ZONE(*) |
(*) Как самостоятельный тип в Oracle не реализован, фактически недореализован, но подтип возможен для описания переменных и параметров в PL/SQL.
Булевы переменные
Фактически – трехзначные переменные с допустимыми значениями TRUE, FALSE и NULL. Правила сравнения и операции – те же, что в Oracle SQL.
LOB-типы
В отличие от скалярных типов, LOB-типы позволяют хранить не сами данные, а «локаторы» (указатели) на данные, размещенные вне, либо внутри БД.
Тип | Описание |
BFILE | Указатель на файл с данными в операционной системе. Средствами Oracle данные можно только читать. |
BLOB | Указатель на большой неструктурированный массив в БД |
CLOB | Указатель на большой символьный массив в БД |
NCLOB | Указатель на большой NLS-символьный массив в БД |
Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Биохимия спиртового брожения: Основу технологии получения пива составляет спиртовое брожение, - при котором сахар превращается...
Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...
Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначенные для поддерживания проводов на необходимой высоте над землей, водой...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!