Неверное количество или типы аргументов ошибки оракула формы - PullRequest
0 голосов
/ 22 апреля 2019

Я создал процедуру в единицах программы Oracle Forms

Код:

PROCEDURE VALIDATION_TEST
    (p_mid we_group_hof_k.mstatusid%TYPE,  
     p_status we_group_hof_k.cardstatus%TYPE
                       ) is
begin
  insert into test
  select mstatusid, cardstatus
   from we_group_hof_k
   where p_mid = 1
   and p_status = 'A';
end;

Эта процедура успешно выполняется.Я помещаю эту строку в кнопку «TEST», запускаемую при нажатии кнопки

VALIDATION_TEST;

Когда я пытаюсь скомпилировать кнопку «TEST», я получаю следующую ошибку:

wrong number or types of arguments in call to 'VALIDATION_TEST'

IЯ использую формы оракула 11g.

Как решить эту проблему?

1 Ответ

2 голосов
/ 22 апреля 2019

Вы определили свою процедуру с двумя параметрами. Ваш вызов этой процедуры передает ноль параметров. Таким образом, вы решаете это путем передачи двух параметров при вызове процедуры.

Или, возможно, удалив параметры из подписи процедуры. Потому что, откровенно говоря, ваш код не имеет большого смысла. Предложение WHERE проверяет параметры на соответствие жестко заданным значениям. Так что либо вы выбираете все записи в we_group_hof_k - если переданы аргументы 1 и 'A' - в противном случае нет.

Возможно, это то, что вам нужно?

PROCEDURE VALIDATION_TEST
    (p_mid we_group_hof_k.mstatusid%TYPE,  
     p_status we_group_hof_k.cardstatus%TYPE
                       ) is
begin
  insert into test
  select mstatusid, cardstatus
   from we_group_hof_k
   where mstatusid = p_mid 
   and cardstatus = p_status;
end;

Тогда вы бы назвали вашу процедуру так:

VALIDATION_TEST(1, 'A');

Хотя, поскольку эта процедура вызывается из Oracle Forms, вероятно, вам нужно передать элементы из блока Forms. Но только вы знаете это наверняка.

...