powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
7 сообщений из 7, страница 1 из 1
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
    #39070079
slay2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Создаем заголовок пакета
Код: sql
1.
2.
3.
4.
5.
6.
create package t1
as
begin
  procedure p1(a int, b int = 1);
  procedure p2;
end



Создаем тело пакета
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
create package body t1
as
begin
  procedure p1(a int, b int)
  as
  begin
  end

  procedure p2
  as
  begin
    execute procedure p1(1);
  end
end



и получаем по лбу
Код: plaintext
1.
2.
3.
4.
5.
Statement failed, SQLSTATE = 07001
unsuccessful metadata update
-CREATE PACKAGE BODY T1 failed
-Dynamic SQL Error
-Input parameter mismatch for procedure P1

Если же при вызове "p1" указать оба параметра, то ошибки нет.
Но, если при этом попробовать вызвать эту процедуру с другого места не указывая дефолтный параметр - получаем туже ошибку
...
Рейтинг: 0 / 0
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
    #39070107
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я в тройке особо не ковырялся, но разве это
slay2012
Код: sql
1.
procedure p1(a int, b int = 1);


и это
slay2012
Код: sql
1.
procedure p1(a int, b int)


не должны совпадать?
...
Рейтинг: 0 / 0
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
    #39070116
slay2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
wadmanЯ в тройке особо не ковырялся, но разве это
slay2012
Код: sql
1.
procedure p1(a int, b int = 1);


и это
slay2012
Код: sql
1.
procedure p1(a int, b int)


не должны совпадать?

Судя по доке - нет, да и сервер ругается:
Код: plaintext
1.
Default values for parameters are allowed only in declaration of packaged procedure T1.P1.
...
Рейтинг: 0 / 0
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
    #39070147
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman,

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

slay2012,

это бага. В трекер. Чуток поменял пакет

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
CREATE PACKAGE T1
AS
begin
  procedure p1(a int, b int = 1) returns (i int);
  procedure p2;
end

RECREATE PACKAGE BODY T1
AS
begin
  procedure p1(a int, b int) returns (i int)
  as
  begin
    suspend;
  end

  procedure p2
  as
  begin
   -- execute procedure p1(1);
  end

end



На удивление SELECT из этой процедуры работает

Код: sql
1.
select * from t1.p1(1);



А EXECUTE PROCEDURE не пашет
...
Рейтинг: 0 / 0
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
    #39070203
slay2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисwadman,
это бага. В трекер.


Кто возьмется? А то чукча читатель...

Симонов ДенисНа удивление SELECT из этой процедуры работает

Код: sql
1.
select * from t1.p1(1);



А EXECUTE PROCEDURE не пашет

Внутри пакета и select не пашет, я изначально на нем и нарвался.
...
Рейтинг: 0 / 0
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
    #39070237
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
slay2012,

CORE-4954
...
Рейтинг: 0 / 0
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
    #39070245
slay2012
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Симонов Денисslay2012,

CORE-4954

Спасибо!
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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