达梦数据库存储过程及游标使用

达梦数据库存储过程及游标使用

案例:
1.机构表(ORGAN)包含以下字段:主键(OBJUID)、机构名称(ORG_NAME)、机构类型(ORG_TYPE)、第三方机构ID(OUT_ID),等等)。
2.第三方机构关联表(ORGAN_OUT)包含以下字段:主键(OBJUID)、机构ID(ORG_ID)、第三方机构ID(OUT_ID)和第三方机构类型(OUT_TYPE)。
最终需要将机构表的机构ID和第三方机构ID迁移到第三方机构关联表中进行管理。SQL如下

    -- 创建存储过程
    -- CREATE OR REPLACE PROCEDURE "数据库名"."存储过程名"()
	CREATE OR REPLACE PROCEDURE "LYLP"."PROC_ORGAN_OUT"()
	AS
	  -- 定义变量
	  myObjuid varchar(32);
	  myOutId varchar(100);
	  -- 定义游标
	  cursor orgCursor is select objuid, out_id from "LYLP"."ORGAN";
	BEGIN
	  -- 打开游标
	  open orgCursor;
	  -- 循环获取游标内容
	  loop
	  	-- 获取游标中的内容
	  	fetch orgCursor into myObjuid,myOutId;
	  	-- 如果游标到底,则退出循环
	  	exit when orgCursor%notfound;
	  	-- 向ORGAN_OUT数据库中新增数据
	  	if myOutId is not null and myOutId <> '' then
	  	  -- sys_guid()达梦数据库获取UUID的方法,lower()达梦数据库大小写转换方法
	  	  insert into "LYLP"."ORGAN_OUT"("OBJUID","ORG_ID","OUT_ID","OUT_TYPE") values(lower(sys_guid()),myObjuid,myOutId,1);
	  	end if;
	  end loop;
	  -- 关闭游标
	  close orgCursor;
	END;

    -- 调用存储过程
    call "LYLP"."PROC_ORGAN_OUT"();
    -- 删除存储过程
    DROP PROCEDURE "LYLP"."PROC_ORGAN_OUT";
  • 0
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值