Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / RECREATE PACKAGE BODY / 1 сообщений из 1, страница 1 из 1
13.09.2018, 17:27
    #39702278
slay2012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
RECREATE PACKAGE BODY
Есть пакет:

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
CREATE OR ALTER PACKAGE TEST_A
AS
begin

procedure "Assign"(
    a int,
    b int = null
);

procedure proc1(arg1 int);

function test2(a int) returns int;
 
end;

RECREATE PACKAGE BODY TEST_A
AS
begin

procedure proc1(arg1 int)
as
begin
end
function test2(a int) returns int
as
begin
    return a + 1;
end

procedure "Assign"(
    a int,
    b int)
as
begin
    execute procedure proc1(a + test2(coalesce(b,5)));
end

end;




делаем бэкап/рестор и пробуем выполнить RECREATE PACKAGE BODY (текст можно не менять) и получаем:
Код: plaintext
1.
2.
3.
4.
This operation is not defined for system tables.
unsuccessful metadata update.
RECREATE PACKAGE BODY TEST_A failed.
Procedure Assign has a signature mismatch on package body TEST_A.

Лечится пересозданием заголовка пакета

Без бэкап/рестор тоже иногда случается.

Код: plaintext
1.
2.
3.
Server Version: LI-V3.0.4.33047 Firebird 3.0
Server Implementation: Firebird/Linux/AMD/Intel/x64
Service Version: 2
...
Рейтинг: 0 / 0
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / RECREATE PACKAGE BODY / 1 сообщений из 1, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]