2012年3月5日星期一
Delete Oracle用户下的表及序列(drop.sql)
DECLARE
v_table_name USER_TABLES.table_name%TYPE;
v_sequence_name USER_SEQUENCES.sequence_name%TYPE;
--两个游标定义
CURSOR c_TableName IS
SELECT table_name FROM USER_TABLES;
CURSOR c_SequenceName IS
SELECT sequence_name FROM USER_SEQUENCES;
BEGIN
--打开游标
OPEN c_TableName;
LOOP
--获取表名
FETCH c_TableName INTO v_table_name;
--作删除表的操作
DROP TABLE v_table_name;
--DBMS_OUTPUT.PUT_LINE('表: ' || v_table_name);
--退出循环的条件
EXIT WHEN c_TableName%NOTFOUND;
END LOOP;
--关闭游标c_TableName
CLOSE c_TableName;
--打开序列系统游标
OPEN c_SequenceName;
LOOP
--获取序列名
FETCH c_SequenceName INTO v_sequence_name;
--
DROP SEQUENCE v_sequence_name;
--DBMS_OUTPUT.PUT_LINE('表: ' || v_sequence_name);
--
EXIT WHEN c_SequenceName%NOTFOUND;
END LOOP;
--关闭游标c_SequenceName
CLOSE c_SequenceName;
END;
/
订阅:
博文评论 (Atom)
没有评论:
发表评论