Создание массива в SQL Oracle - PullRequest
1 голос
/ 26 января 2012

Я пытаюсь выбрать случайный элемент из массива при выполнении обновления в Oracle. Какой самый простой способ добиться этого?

Я хочу что-то вроде этого:

DECALRE ARRAY items = ('item1', 'item2', 'item3')

обновить поле набора таблиц = элементы (TRUNCT (DBMS_RANDOM.value (1,3)))

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

1 Ответ

2 голосов
/ 26 января 2012

Если вы используете массив фиксированного размера, вы можете использовать VARRAY в PL / SQL:

DECLARE
    TYPE strArray IS VARRAY(3) of VARCHAR2(10);
    v_myarray strArray;
BEGIN
    v_myarray := strArray('item1', 'item2', 'item3');
    update table
    set field = v_myarray(DBMS_RANDOM.value(1,3));   
END;
/
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...