Oracle数据库定义游标
- 当我们在数据库中想要将一个表中的数据按照行提取出来并且将每一个属性值赋给另外的语句使用的时候,游标可以看作保存查询表的一个临时容器,要用的时候一行一行的取出来,并且可以将每一个属性值赋给自己定义的变量,方便操作。
- 以下代码首先定义了一个游标,然后将node表中每一个点数据的id号和坐标提取出来并且插入到新建的sdo_node表中(点存成sdo_geometry的数据类型),下面的表为node点表,第一列为点标号id,第二三四列分别为点的x, y, z坐标。
-- 创建一个表来将点以sdo_geometry的形式存储起来
create table sdo_node(
node_ID varchar2(20),
node_gemo sdo_geometry
);
-- 定义游标
declare
cursor c is select column1, column2, column3, column4 from node;
col1 varchar2(64);
col2 varchar2(64);
col3 varchar2(64);
col4 varchar2(64);
begin
open c ;
loop
fetch c into col1, col2, col3, col4;
exit when c%notfound;
insert into sdo_node(node_ID, node_gemo)
values(col1, SDO_GEOMETRY(3001, null,
MDSYS.SDO_POINT_TYPE(to_number(col2), to_number(col3), to_number(col4)), NULL, NULL));
end loop;
close c;
end;
- sdo_node表插入的结果为:
当然游标还有其他的类型,这里只是我学习的过程中用到的一个,后面学习会再补充。