1.光标:光标被用于以记录为单位的操作,一般用于过程化程序里嵌入的SQL语句。
2.定义语法(以下语法均以MySQL为例):
DECLARE CURSOR_NAME CURSOR FOR SELECT语句
3.打开光标:要使用光标,必须首先打开光标。当光标被打开时,指定光标的SELECT语句
被执行,查询结果被保存在内存里的特定区域。
语法:OPEN CURSOR_NAME
4.从光标获取数据:光标打开后,可以使用FETCH语句获取光标的内容(查询的结果)
语法:FETCH CURSOR_NAME INTO 变量名1,变量名2...
5.从光标获得数据时,可能会到达光标的末尾,会使关闭光标时产生错误。下面以MySQL语法
来演示避免这个问题的做法:
BEGIN
DECLARE done INT DEFAULT 0;
DECLARE custname VARCHAR(30);
DECLARE namecursor CURSOR FOR SELECT CUST_NAME_FROM TBL_CUSTOMER;
OPEN namecursor;
read_loop: LOOP
FETCH namecursor INTO custname;
IF done THEN
LEAVE read_loop;
END IF;
Do something with the variable
END LOOP;
CLOSE namecursor;
END;
6.关闭光标:CLOSE CURSOR_NAME