Oracle数据库中游标(cursor)的用法 / sdo_geometry数据类型的存储

本文介绍了如何在Oracle数据库中使用游标进行数据操作,通过定义游标从node表中提取点数据,并将这些数据以sdo_geometry格式存储到新的sdo_node表中。游标作为一种临时容器,允许按行处理查询结果,便于数据处理和转换。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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表插入的结果为:
    sdo_node表
    当然游标还有其他的类型,这里只是我学习的过程中用到的一个,后面学习会再补充。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MYH永恒

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值