我的Oracle版本:Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
設置變量外循環把它拿來循環
我想設置一個變量外循環,並使其價值變化循環的每個項目。 (就像我們平時做的JSP,PHP ...)
create or replace PROCEDURE TEST2 AS
-- VARIABLE
v_variable number;
cursor c2 is
select round(dbms_random.value() * 8) + 1 AS temp_key from dual; -- temp_key is a random value
BEGIN
OPEN c2;
FOR SRC IN (SELECT * FROM TB_MASTER_TEMP2) -- it has many rows
LOOP
fetch c2 into v_variable; -- v_variable need to change for every row
Dbms_Output.Put_Line(SRC.MAS_ENTRY_NM || ', ' ||v_variable); --test
END LOOP;
END TEST2;
但結果是
aaa, 8
bbb, 8 --`v_variable` stays the same
...
v_variable
不會改變。 請修復我的程序。
現在我明白了。我認爲每次調用'fetch'時,都會執行'select'並將其提取到變量中。 – Deckard