Конспект лекций по дисциплине «Сетевые базы данных», страница 21

вызовет сообщение о синтаксической ошибке, так как сначала выполнится операция b and с. Правильным будет выражение:

(а = b) and (с < d)

Вопросы для самоконтроля

6.1.  Каковы максимальные размеры типов данных CHAR и VARCHAR2 в PL/SQL?

6.2.  Что означает тип данных %TYPE?

6.3.  Какие функции явного преобразования типов вы знаете?

6.4.  Чем отличаются типы данных CHAR и VARCHAR2 языка SQL от этих же типов данных в PL/SQL?

6.5.  Чем отличаются тип данных DATE языка SQL от типа данных DATE в PL/SQL?

6.6.  Какие значения может хранить переменная типа BOOLEAN?

6.7.  Какие типы данных требуют обязательного указания длины при объявлении переменных?

6.8.  Возможно ли неявное преобразование строки в дату?

6.9.  С помощью какой функции можно преобразовать строку в число?

6.10.  Возможно ли неявное преобразование переменной типа NUMBER(5) в переменную типа NUMBER(4,1)?

7. Операторы языка PL/SQL

            7.1. Оператор присваивания

Обозначается :=. Вызывает вычисление выражения стоящего справа от него, и присваивание вычисленного значения переменной, стоящей слева. Таким образом, с помощью этого оператора в ячейку памяти, имя которой указано слева от знака :=, заноситсязначение, находящееся справа от знака :=.

            7.2. Составной оператор

Во многих языках программирования используется составной оператор, который представляет собой совокупность последовательно выполняемых операторов, заключенных в операторные скобки begin … end. В PL/SQL в качестве составного оператора используется блок PL/SQL (см. п.5.1).

Используется, когда необходимо выделить часть программы со своей областью определения переменных, обработки ошибок и т.п. Само тело программы тоже можно считать составным оператором, причем основная программа для отделения ее от других программ должна заканчиваться строкой, содержащей в левой позиции только один символ /. Это показано в следующем примере:

DECLARE

D date;

BEGIN

D  :=  ’01.09.2009’;

END;

/

            7.3. Условный оператор

Реализует алгоритмические конструкции «обход» и «развилка». Условный оператор типа «обход» имеет синтаксис

IF условие THEN

(операторы SQL или PL/SQL)

END IF,

где условие – любое логическое выражение. Если условие принимает значение TRUE (истина), то выполняются операторы SQL или PL/SQL, располагающиеся между ключевыми словами THEN и END IF. В противном случае эти операторы обходятся и выполняются операторы, следующие за ключевыми словами END IF.

Условный оператор типа «развилка» имеет синтаксис

IF условие THEN

(операторы SQL или PL/SQL)

ELSIF условие THEN

(операторы SQL или PL/SQL)

ELSE

(операторы SQL или PL/SQL)

END IF;

В этой конструкции обязательно выполняется одна из групп операторов – либо операторы после THEN, либо операторы после ELSE. Выполнение операторов SQL или PL/SQL после ключевого слова THEN происходит, если выполняется условие после IF или после ELSIF. Если ни одно из этих условий не является истинным, будут выполнены операторов SQL или PL/SQL, следующие за ELSE.

Обратите внимание на секцию ELSIF (без буквы E после S) – она не является обязательной. Но ее использование позволяет избежать вложения операторов IF друг в друга при реализации сложных условий ветвления.

Примеры.

DECLARE

H number;