我是oracle的新手,正在学习游标。我的表City有两列city_id,city_name。因此,这是我尝试的操作:
DECLARE
CURSOR city_list is
SELECT * from OT.City;
v_list SYS_REFCURSOR;
BEGIN
OPEN city_list FOR
v_list := city_list;
DBMS_OUTPUT.PUT_LINE(v_list.city_id);
EXIT WHEN city_list%NOTFOUND;
CLOSE city_list;
END;
/
我正在尝试将游标的数据分配给新声明的值v_list SYS_REFCURSOR;
。但是输出出现错误。v_list := city_list;
如何将游标的所有值直接分配给另一个游标,或者是否有其他方法?
您仍然可以SYS_REFCURSOR
通过在OPEN
和FOR
子句之间定位,然后在光标之后使用,然后
LOOP FETCH INTO... END LOOP
当前代码后,需要添加模板并关闭打开的游标:
DECLARE
v_list SYS_REFCURSOR;
v_city_id city.city_id%TYPE;
v_city_name city.city_name%TYPE;
BEGIN
OPEN v_list FOR
SELECT city_id, city_name FROM City;
LOOP
FETCH v_list
INTO v_city_id, v_city_name;
EXIT WHEN v_list%NOTFOUND;
DBMS_OUTPUT.PUT_LINE(v_city_id || ' - ' || v_city_name);
END LOOP;
CLOSE v_list;
END;
/
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句