Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / IBExpert Новый топик    Ответить
 Ошибка в отладчике пакета при использовании процедур с необязательными параметрами  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 109
Добрый день.
При использовании процедур с необязательными параметрами не работает Debug package (F8)

Текст ошибки:
This operation is not defined for system tables.
unsuccessful metadata update.
RECREATE PACKAGE BODY IBE$DBG$PKG$1 failed.
Dynamic SQL Error.
Input parameter mismatch for procedure IBE$DBG$PKG$1.PROC1.


Пример пакета:
+
SET TERM ^ ;

CREATE OR ALTER PACKAGE NEW_PACKAGE1
AS
BEGIN
  PROCEDURE proc1 (
    param1 INTEGER,
    param2 INTEGER = NULL
  );

  PROCEDURE proc2;
END^

RECREATE PACKAGE BODY NEW_PACKAGE1
AS
BEGIN
  PROCEDURE proc1 (
    param1 INTEGER,
    param2 INTEGER
  )
  AS
  BEGIN
    -- Code
  END

  PROCEDURE proc2
  AS
    DECLARE VARIABLE v_operdate TIMESTAMP;
  BEGIN
    -- Вот так Debug package (F8) работает
    -- EXECUTE PROCEDURE proc1(1, 2);

    -- А вот так не работает. Ошибка
    EXECUTE PROCEDURE proc1(1);
    /*
      Текст ошибки

      This operation is not defined for system tables.
      unsuccessful metadata update.
      RECREATE PACKAGE BODY IBE$DBG$PKG$1 failed.
      Dynamic SQL Error.
      Input parameter mismatch for procedure IBE$DBG$PKG$1.PROC1.
    */
  END

END^

SET TERM ; ^
8 окт 20, 11:16    [22210696]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в отладчике пакета при использовании процедур с необязательными параметрами  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
Исправил.
9 окт 20, 05:30    [22211181]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в отладчике пакета при использовании процедур с необязательными параметрами  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 109
IBExpert, спасибо. заработало.
А посмотрите, пожалуйста, еще одну ошибку, связанную с параметрами.

Тот же самый пакет. Если процедура описана только в теле пакета, и указан необязательный параметр. Пакет компилируется и работает корректно. Но в отладку не пускает, выводит ошибку

This operation is not defined for system tables.
unsuccessful metadata update.
RECREATE PACKAGE BODY IBE$DBG$PKG$1 failed.
Default values for parameters are allowed only in declaration of packaged procedure IBE$DBG$PKG$1.PROC1.

Пример пакета:
+
SET TERM ^ ;

CREATE OR ALTER PACKAGE NEW_PACKAGE1
AS
BEGIN
  PROCEDURE proc2;
END^

RECREATE PACKAGE BODY NEW_PACKAGE1
AS
BEGIN
  PROCEDURE proc1 (
    param1 INTEGER,
    param2 INTEGER = NULL
  )
  AS
  BEGIN
    -- Code
  END

  PROCEDURE proc2
  AS
    DECLARE VARIABLE v_operdate TIMESTAMP;
  BEGIN
    EXECUTE PROCEDURE proc1(1);
    /*
      Текст ошибки при попытке запустить отладку

      This operation is not defined for system tables.
      unsuccessful metadata update.
      RECREATE PACKAGE BODY IBE$DBG$PKG$1 failed.
      Default values for parameters are allowed only in declaration of packaged procedure IBE$DBG$PKG$1.PROC1.
    */
  END

END^

SET TERM ; ^


Сообщение было отредактировано: 9 окт 20, 12:17
9 окт 20, 12:19    [22211392]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в отладчике пакета при использовании процедур с необязательными параметрами  [new]
IBExpert
Member

Откуда: От верблюда
Сообщений: 3331
Dimbuch®
еще одну ошибку, связанную с параметрами.


Исправил.
12 окт 20, 04:05    [22212374]     Ответить | Цитировать Сообщить модератору
 Re: Ошибка в отладчике пакета при использовании процедур с необязательными параметрами  [new]
Dimbuch®
Member

Откуда: Москва
Сообщений: 109
IBExpert,
Работает. И еще появились сообщения Warning по неиспользуемым переменным при компиляции пакета. Очень удобно.

Спасибо!
12 окт 20, 09:32    [22212449]     Ответить | Цитировать Сообщить модератору
Все форумы / IBExpert Ответить