删除有/无子记录的数据
来源:互联网 发布:平台软件开发 编辑:程序博客网 时间:2024/03/29 19:09
-- 删除有子记录的数据
declare
v_system_id it_high_system_info.system_id %type;
v_sqlerrm varchar2(999);
v_constraint varchar2(999);
v_table varchar2(999);
v_sql varchar2(999);
v_i number := 0;
v_k number := 0;
cursor cur_str is
select system_id
from it_high_system_info t
where not exists (select *
from it_high_system_info_intf b
where b.year = 2013
and t.price_system_id = b.price_system_id)
and year = 2013;
begin
for c_str in cur_str loop
v_system_id := c_str.system_id;
for i in 1..9 loop
begin
delete it_high_system_info t where t.system_id = v_system_id;
exception when others then
v_sqlerrm := sqlerrm;
--获取约束名称
select substr(v_sqlerrm, instr(v_sqlerrm, '.') +1, instr(v_sqlerrm, ')') -1 - instr(v_sqlerrm, '.') ) into v_constraint from dual;
--根据约束名称获取表名
select table_name into v_table from all_constraints ac where ac.constraint_name = v_constraint;
--根据子系统ID删除数据
v_sql := 'delete '||v_table||' where system_id = '''||v_system_id||'''';
execute immediate v_sql;
end;
end loop;
end loop;
declare
v_system_id it_high_system_info.system_id %type;
v_sqlerrm varchar2(999);
v_constraint varchar2(999);
v_table varchar2(999);
v_sql varchar2(999);
v_i number := 0;
v_k number := 0;
cursor cur_str is
select system_id
from it_high_system_info t
where not exists (select *
from it_high_system_info_intf b
where b.year = 2013
and t.price_system_id = b.price_system_id)
and year = 2013;
begin
for c_str in cur_str loop
v_system_id := c_str.system_id;
for i in 1..9 loop
begin
delete it_high_system_info t where t.system_id = v_system_id;
exception when others then
v_sqlerrm := sqlerrm;
--获取约束名称
select substr(v_sqlerrm, instr(v_sqlerrm, '.') +1, instr(v_sqlerrm, ')') -1 - instr(v_sqlerrm, '.') ) into v_constraint from dual;
--根据约束名称获取表名
select table_name into v_table from all_constraints ac where ac.constraint_name = v_constraint;
--根据子系统ID删除数据
v_sql := 'delete '||v_table||' where system_id = '''||v_system_id||'''';
execute immediate v_sql;
end;
end loop;
end loop;
end;
----删除无子记录的数据
declare
v_system_id it_high_system_info.system_id %type;
v_i number := 0;
v_k number := 0;
cursor cur_str is
select * from it_high_system_info where year = 2013;
begin
for c_str in cur_str loop
v_system_id := c_str.system_id;
begin
delete it_high_system_info t where year = 2013 and t.system_id = v_system_id;
v_i := v_i + 1;
exception when others then
v_k := v_k + 1;
null;
end;
end loop;
dbms_output.put_line('删除'||v_i||'条无子记录的数据!');
dbms_output.put_line('没有子记录的数据有'||v_k||'条!');
end;
- 删除有/无子记录的数据
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- hibernate删除父对象提示子对象有记录的问题
- 删除重复的数据记录
- 实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除 (转)
- 转:邹建--实现删除主表数据时, 判断与之关联的外键表是否有数据引用, 有标志, 无则删除
- xe2 VLC STYLE 皮肤设计
- Android tabHost 刷新Activity
- 程序中时间的表示及时间函数的的选择
- 原生js周选择器
- Android学习(3)-手工创建一个Android应用
- 删除有/无子记录的数据
- 会引起全表扫描的写法
- css3 翻转和旋转的区别
- 解决ViewPager中Gallery无法滑动问题
- mysqldump参数详细说明
- 向上级团委汇报工作
- 一个windows开源socket 库
- BlockingQueue详解
- 一个按钮做大选择