Отладка программ PL/SQL

Oracle7 не поставляется с готовой и полной средой разработки. Поэтому для успешной разработки с применением PL/SQL нужно освоить некоторые приемы отладки.

Перед исполнением программы необходимо выполнить две операции:
1. Исполнить команду SET SERVEROUTPUT ON разрешающую вывод на экран информации, заданной в процедуре DBMS_OUTPUT.PUT_LINE(текстовая_строка).

Эта процедура является единственным средством вывода значений переменных из программ PL/SQL. Например, DBMS_OUTPUT.PUT_LINE(’Пример ‘||TO_CHAR(SYSDATE,’DD’)) выведет строку из слова привет и текущее число через пробел.

2. Установить формат даты с помощью команды ALTER SESSION SET NLS_DATE_FORMAT=’DD.MM.YYYY’;
Если при выполнении SQL-запроса или программы PL/SQL обнаружены ошибки, то в первую очередь надо проверить правильность написания в них имен таблиц, столбцов и др. Для этого можно воспользоваться командой SQL*Plus DESCRIBE, которая выводит список столбцов для таблицы или спецификацию для функции, процедуры, пакета. Синтаксис этой команды имеет вид: DESC[RIBE] {[user.]table [column] | [user.]object[.subobject]}

Пример:

SQL> desc kadry
 Name                            Null?    Type
 ------------------------------- -------- ----
 NOMER                           NOT NULL NUMBER(6)
 FAMILIYA                                 VARCHAR2(20)
 IMYA                                     VARCHAR2(15)
 OTCHESTVO                                VARCHAR2(20)
 ROZHDENIE                                DATE
 POL                                      CHAR(1)
 IZMEN                           NOT NULL DATE

Аналогичным образом можно получить структуру любого представления словаря данных (см. пп. 13 и 14), например, структуру user_objects, где хранится информация о пользовательских объектах базы данных (INDEX, SEQUENCE, VIEW, PACKAGE, PACKAGE BODY, FUNCTION, PROCEDURE, TABLE, TRIGGER): desc user_objects

 Name             Null?    Type
 ---------------- -------- ----
 OBJECT_NAME               VARCHAR2(128)
 OBJECT_ID                 NUMBER
 OBJECT_TYPE               VARCHAR2(13)
 CREATED                   DATE
 LAST_DDL_TIME             DATE
 TIMESTAMP                 VARCHAR2(75)
 STATUS                    VARCHAR2(7)

Для получения полного описания всех объектов можно выполнить команду: select * from user_objects;, а для получения описания процедур select * from user_objects where object_type = ‘PROCEDURE’;

OBJECT_NAME OBJECT_ID OBJECT_TYPE CREATED    LAST_DDL_T TIMESTAMP           STATUS
----------- --------- ----------- ---------- ---------- ------------------- -------
PR_CURS     1928      PROCEDURE   17.11.1996 02.02.1997 1997-02-02:13:37:05 VALID
PR_PRINT    1957      PROCEDURE   24.11.1996 24.11.1996 1996-11-24:16:59:44 INVALID
PR_SHTAT    1970      PROCEDURE   02.01.1997 08.01.1997 1997-01-08:12:38:02 VALID

При возникновении ошибок в командах CREATE PACKAGE, CREATE PACKAGE BODY, CREATE PROCEDURE, CREATE FUNCTION, CREATE TRIGGER, CREATE VIEW их уточнение можно выполнить с помощью команды SQL*Plus: SHOW ERR[ORS] [{PACKAGE | PACKAGE BODY | PROCEDURE | FUNCTION | TRIGGER | VIEW} name]

Оставить комментарий