Oracle PL / SQL: как выполнить процедуру с varray в качестве параметра out? - PullRequest
0 голосов
/ 24 августа 2018

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

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

create or replace type t_desc as varray(15) of varchar2(15);

create table all_values(code int, list t_desc);

insert into all_values values (0, t_desc('a','b','c','d'));
insert into all_values values (1, t_desc('a','b'));

Затем я написал следующую процедуру:

create or replace procedure teste(v_code int, v_list out t_list) is
begin
    select list into v_list from all_values where code = v_code;
end;

Вот где я застрял.Как выполнить эту процедуру, чтобы вернуть значения, которые я сохранил в столбце списка?

1 Ответ

0 голосов
/ 24 августа 2018

Вы должны объявить переменную и передать ее в ваш proc.

declare
  t  t_desc ;
  i int;
begin
  teste(i, t);
end;

, чтобы увидеть результаты, которые вы можете исказить через ваш varray:

FOR x IN 1..t.COUNT LOOP
  dbms_output.put_line(t(x));
END LOOP;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...