2016-10-24 3 views
1

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

CREATE OR REPLACE PROCEDURE testing AS 

BEGIN 

operations... 
END; 

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

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

+0

код [документация] (http://docs.oracle.com/database/121/LNPLS/composites.htm#LNPLS005) является хорошей отправной точкой – Aleksej

+0

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

+0

проверьте этот пример [PL/SQL-массивы] (https://www.tutorialspoint.com/plsql/ plsql_arrays.htm), это может помочь. – Sawalhah

ответ

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;