2012-01-25 46 views
1

我試圖在Oracle中執行更新時從數組中選取一個隨機項。什麼是最簡單的方法來實現這一點?在SQL中創建數組Oracle

我想是這樣的:

DECALRE數組項=( '物品1', 'ITEM2', '項目3')

更新表設置字段=項目(TRUNCT(DBMS_RANDOM.VALUE(1, 3)))

通過這種方式,來自列表的隨機值被插入到正在更新的每個記錄的字段中。

+0

爲什麼你需要一個數組來做到這一點?爲什麼不更新? – Ben

回答

2

如果您使用的是固定大小的數組,你可以在PL/SQL使用VARRAY:

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; 
/