Общая структура программы на PL/SQL — КиберПедия 

Индивидуальные очистные сооружения: К классу индивидуальных очистных сооружений относят сооружения, пропускная способность которых...

Эмиссия газов от очистных сооружений канализации: В последние годы внимание мирового сообщества сосредоточено на экологических проблемах...

Общая структура программы на PL/SQL

2022-12-20 22
Общая структура программы на PL/SQL 0.00 из 5.00 0 оценок
Заказать работу

Блок в 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 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.014 с.