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

CREATE OR REPLACE PROCEDURE Proc_1  IS

nRtg NUMBER (4) := 120;

vVal VARCHAR(20) := ‘Tokyo’;

BEGIN

MyProc(nRtg, vVal);

END myProc;

/

При именованном представлении для каждого аргумента указывается как формальный, так и фактический параметры. Это позволяет при желании установить собственный порядок аргументов.

CREATE OR REPLACE PROCEDURE Proc_1  IS

nRtg NUMBER (4) := 120;

vVal VARCHAR(20) := ‘Tokyo’;

BEGIN

MyProc(p_Par2 => vVal, p_Par1 => nRtg);

END myProc;

/

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

9.1.  Почему хранимые процедуры называются «хранимыми»?

9.2.  Где хранятся хранимые процедуры?

9.3.  Можно ли хранимые процедуры вызывать из других программ?

9.4.  Сколько операторов RETURN может быть помещено в тело функции?

9.5.  Какие виды параметров хранимых процедур вам известны?

9.6.  Требуется ли для параметров типа CHAR и VARCHAR2 в хранимых процедурах указывать длину?

9.7.  Если переменная определена во внутреннем блоке, распространяется ли область ее действия на внешний блок?

9.8.  Если переменная определена во внешнем блоке, всегда ли она видна во внутреннем блоке?

9.9.  Можно ли использовать тип %TYPE  для параметров хранимых процедур?

9.10.  Нужно ли указывать круглые скобки при вызове процедур и функций PL/SQL, если у них нет параметров?

10. Стандартные пакеты PL/SQL

В составе СУБД Oracle поставляется набор стандартных пакетов, разработанных в корпорации Oracle, которые можно использовать в программных приложениях. Все эти пакеты принадлежат пользователю SYS, однако для них созданы общие синонимы, поэтому пакеты можно использовать, не предваряя имя префиксом SYS. Один из таких пакетов описан в следующем разделе. Для изучения функциональных возможностей других стандартных пакетов следует обратиться к рекомендованной литературе.

            10.1. Пакет DBMS_OUTPUT

Пакет DBMS_OUTPUT очень удобен при отладке программ. У него имеется ограничение на длину выходной строки, которая не должна превышать 255 символов. Однако использование стандартной функции SUBSTR позволяет обойти это ограничение, что будет продемонстрировано в примерах.

В состав пакета DBMS_OUTPUT входит несколько процедур и функций, но наиболее полезной для отладки является процедура PUT_LINE. Она осуществляет вывод на экран тестовой строки, заданной в качестве входного параметра. Приведенный ниже пример демонстрирует вывод приветствия.

BEGIN

DBMS_OUTPUT. PUT_LINE (‘Hello, World!’);

END;

/

Следующий пример показывает, как с помощью функции SUBSTR выводить строки длиной более 255 символов. Функция SUBSTR возвращает подстроку заданной длины. Она имеет три аргумента: 1) строка, из которой выбирается подстрока; 2) начальная позиция подстроки в строке и 3) длина подстроки.

DECLARE

v_string VARCHAR2(500);

v_length NUMBER(10);

BEGIN

SELECT text, text_length  INTO  v_string, v_length

FROM  dba_views

WHERE  view_name = ‘DBA_COL_PRIVS’;

DBMS_OUTPUT.PUT_LINE( ‘View DBA_COL_PRIVS is ’ || v_length || ‘ bytes’ );

DBMS_OUTPUT.PUT_LINE( ‘TEXT’ );

DBMS_OUTPUT.PUT_LINE( ‘====’ );

DBMS_OUTPUT.PUT_LINE( SUBSTR(v_string, 1, 250) );

DBMS_OUTPUT.PUT_LINE( SUBSTR(v_string, 251, 250) );

END;

/

Из примера легко понять, как строка v_string длиной 500 символов выводится двумя подстроками по 250 символов каждая.

11. Интегрированная среда Oracle 10gXE

11.1 Как начать работу с Oracle 10gXE

Прежде чем начать работу с СУБД Oracle 10g XE, ее нужно установить на компьютере. Процесс установки (инсталляции) описан в файле Инсталляция.doc. Если вы правильно выполнили все действия, описанные в этом файле, то инсталляция завершится открытием Web-браузера с окном регистрации, как показано на рис. 1.