oracle 存储过程实现循环增删字段
【代码】oracle 存储过程实现循环增删字段。
·
declare
v_sql VARCHAR2(4000);
BEGIN
-- 使用循环删除记录
FOR i IN 1..13 LOOP
DELETE FROM student_info1 WHERE sno = i;
DELETE FROM student_info WHERE sno = i;
END LOOP;
SAVEPOINT sp0;
-- 使用循环插入记录
FOR i IN 1..13 LOOP
INSERT INTO student_info (sno, name, sex) VALUES (i, '张三','男');
INSERT INTO student_info1 (sno, name, sex) VALUES (i,'李四', '女');
SAVEPOINT sp1;
END LOOP;
-- 使用循环插入字段
FOR i IN 1..10 LOOP
v_sql := 'ALTER TABLE student_info ADD (' || 'column' || i || ' VARCHAR2(50) DEFAULT ''默认值0/1'')';
EXECUTE IMMEDIATE v_sql;
update student_info set name=2 where sno=i;
END LOOP;
SAVEPOINT sp3;
insert into student_info (sno, name, sex) values (2, '王五', '男'); -- 这条语句将违反唯一性约束
SAVEPOINT sp4;
commit;
exception
when others then
rollback to sp3;
-- 报错信息
dbms_output.put_line(dbms_utility.format_error_backtrace);
dbms_output.put_line(sqlcode ||' : ' || sqlerrm);
commit;
end;
DECLARE
v_sql VARCHAR2(4000);
BEGIN
FOR i IN 1..10 LOOP -- 假设你要删除10列,根据实际情况调整
v_sql := 'ALTER TABLE student_info DROP COLUMN column' || i;
EXECUTE IMMEDIATE v_sql;
END LOOP;
END;
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)