Историки об Елизавете Петровне: Елизавета попала между двумя встречными культурными течениями, воспитывалась среди новых европейских веяний и преданий...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Топ:
Основы обеспечения единства измерений: Обеспечение единства измерений - деятельность метрологических служб, направленная на достижение...
Выпускная квалификационная работа: Основная часть ВКР, как правило, состоит из двух-трех глав, каждая из которых, в свою очередь...
Организация стока поверхностных вод: Наибольшее количество влаги на земном шаре испаряется с поверхности морей и океанов...
Интересное:
Наиболее распространенные виды рака: Раковая опухоль — это самостоятельное новообразование, которое может возникнуть и от повышенного давления...
Берегоукрепление оползневых склонов: На прибрежных склонах основной причиной развития оползневых процессов является подмыв водами рек естественных склонов...
Средства для ингаляционного наркоза: Наркоз наступает в результате вдыхания (ингаляции) средств, которое осуществляют или с помощью маски...
Дисциплины:
2022-12-20 | 23 |
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-символьный массив в БД |
|
|
Общие условия выбора системы дренажа: Система дренажа выбирается в зависимости от характера защищаемого...
Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...
Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...
Таксономические единицы (категории) растений: Каждая система классификации состоит из определённых соподчиненных друг другу...
© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!