ORACLE 递归删除数据

本文介绍了一个关于广告类别的数据库设计,包括创建表结构和定义存储过程来删除特定节点的方法。表ADVERTISE_CATEGORY包含关键字段如节点ID、节点名称及父节点ID等,并通过存储过程实现递归删除指定节点及其子节点。

数据库设计:

CREATE  TABLE  ADVERTISE_CATEGORY
(
       CATEGORY_ID       NUMBER PRIMARY KEY,  --节点ID 
       CATEGORY_NAME     VARCHAR2(500),       --节点名字 
       PARENT_ID         NUMBER                          --父节点ID
)

表数据

删除 节点ID为1的存储过程

create or replace procedure sp_advertise_category_del
(
       v_cate_id  in number
)
 is
 begin
       delete from advertise_category where category_id in
        (select category_id from advertise_category  start with category_id=v_cate_id connect by prior category_id = parent_id);
 end;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值