Как определить массив / коллекцию в хранимой процедуре?

#sql #oracle #oracle-sqldeveloper

#sql #Oracle #oracle-sqldeveloper

Вопрос:

У меня есть фиксированный массив строк, с которыми я хочу работать. Как я должен объявить их в хранимой процедуре? Возможно ли это вообще?

 CREATE OR REPLACE PROCEDURE testing AS

BEGIN

operations...
END; 
  

Можем ли мы объявить, как DECLARE @v1 varchar(15); или что-то подобное для сбора строки?(PS «@» выдает ошибку в Oracle SQL Developer)

Новичок в SQL, поэтому ожидаю пример кода, если это возможно, спасибо.

Комментарии:

1. Документация является хорошей отправной точкой

2. вы можете использовать varray (таблицы Plsql). Пройдите через это docs.oracle.com/cd/A97630_01/appdev.920/a96624/05_colls.htm

3. проверьте этот пример PL / SQL — Arrays , это может помочь.

Ответ №1:

Вы можете использовать это:

 declare
   type array_t is varray(3) of varchar2(2);
   array array_t := array_t('aa', 'bb', 'cc');
begin
   for i in 1..array.count loop
       dbms_output.put_line(array(i));
   end loop;
end;
  

Комментарии:

1. Hii, если я хочу получить доступ к массиву month, например, months[] = '01-01-2020,01-02-2020,01-03-2020'; и получить доступ к каждому элементу. как это сделать.