Передача таблицы varchar2 в процедуру - PullRequest
0 голосов
/ 05 февраля 2019

Мне нужен пакет с процедурой, принимающей параметр таблицы типов varchar2 (255).

Спецификация пакета:

  type charArray is table of varchar2(255) index by binary_integer;

Тело пакета:

PROCEDURE call_me (p1 IN charArray, p2 IN VARCHAR2) IS ...

Я пытался вызвать эту процедуру, используя:

declare
    type t_type is table of varchar2(255) index by binary_integer;

    l_array t_type;

begin

  l_array := ('131240');

  pkg._name.call_me (l_array, 'name');

end;

Я получаю эту ошибку:

PLS-00306: неверный номер или типы аргументов при вызове 'call_me'

Что я делаю не так?

1 Ответ

0 голосов
/ 05 февраля 2019

У вас есть два типа, объявленные с одинаковым определением, но это не делает их совместимыми.Чтобы передать таблицу в пакет, вы должны использовать тип, объявленный в пакете:

declare
    l_array pkg_name.charArray;    
begin
    l_array(1) := '131240';
    pkg_name.call_me (l_array, 'name');
end;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...