Гость
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1] / 7 сообщений из 7, страница 1 из 1
07.10.2015, 08:22
    #39070079
slay2012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
Создаем заголовок пакета
Код: 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
07.10.2015, 09:06
    #39070107
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
Я в тройке особо не ковырялся, но разве это
slay2012
Код: sql
1.
procedure p1(a int, b int = 1);


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


не должны совпадать?
...
Рейтинг: 0 / 0
07.10.2015, 09:14
    #39070116
slay2012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
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
07.10.2015, 09:35
    #39070147
Симонов Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
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
07.10.2015, 10:02
    #39070203
slay2012
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Пакеты и параметры по умолчанию [WI-V6.3.0.32067 Firebird 3.0 Release Candidate 1]
Симонов Денисwadman,
это бага. В трекер.


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

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

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



А EXECUTE PROCEDURE не пашет

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

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

CORE-4954

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


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