大家好,欢迎来到IT知识分享网。
— for .. in `隐式游标`
BEGIN
FOR RS IN (SELECT column_1 FROM table_name) LOOP
dbms_output.put_line(RS.column_1);
END LOOP;
END;
— RS 必须是单个字段
DECLARE
CURSOR RS IS SELECT column_1 FROM table_name;
column_1 VARCHAR2(50);
BEGIN
OPEN RS;
LOOP
FETCH RS INTO column_1;
EXIT WHEN RS%NOTFOUND;
dbms_output.put_line(column_1);
END LOOP;
CLOSE RS;
END;
/
— bulk collect显示游标
DECLARE
CURSOR RS IS SELECT column_1 FROM table_name;
column_1_array dbms_sql.Varchar2_Table;
BEGIN
OPEN RS;
FETCH RS BULK COLLECT INTO column_1_array;
FOR i IN 1 .. column_1_array.count LOOP
dbms_output.put_line(column_1_array(i));
END LOOP;
CLOSE RS;
END;
— bulk collect 显示游标 + limit
DECLARE
CURSOR RS IS SELECT column_1 FROM table_name;
column_1_array dbms_sql.Varchar2_Table;
BEGIN
OPEN RS;
LOOP
FETCH RS BULK COLLECT INTO column_1_array LIMIT 2;
EXIT WHEN RS%NOTFOUND;
FOR i IN 1 .. column_1_array.count LOOP
dbms_output.put_line(column_1_array(i));
END LOOP;
END LOOP;
CLOSE RS;
END;
– select into 隐式游标
DECLARE
column_1 VARCHAR2(100);
BEGIN
SELECT zone_code INTO column_1 FROM table_name WHERE ROWNUM = 1;
dbms_output.put_line(column_1);
END;
– 动态sql,select into 隐式游标
DECLARE
column_1 VARCHAR2(50);
l_table VARCHAR2(200);
l_sql VARCHAR2(200);
BEGIN
l_table := ‘table_name’;
l_sql := ‘select column_1 from ‘ || l_table || ‘ where rownum = 1’;
EXECUTE IMMEDIATE l_sql INTO column_1;
dbms_output.put_line(column_1);
END;
– 动态sql select into 隐式游标 + bulk collect
DECLARE
column_1_array dbms_sql.Varchar2_Table;
l_table VARCHAR2(20);
l_sql VARCHAR2(100);
BEGIN
l_table := ‘table_name’;
l_sql := ‘select column_1 from ‘ || l_table;
EXECUTE IMMEDIATE l_sql BULK COLLECT INTO column_1_array;
FOR i IN 1 .. column_1_array .count LOOP
dbms_output.put_line(column_1_array(i));
END LOOP;
END;
免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://yundeesoft.com/16064.html