【发布时间】:2014-09-14 02:46:37
【问题描述】:
我执行了下面的脚本,它可以工作:
BEGIN
FOR cur_rec IN (SELECT object_name, object_type
FROM user_objects
WHERE object_type IN
('TABLE',
'VIEW',
'PACKAGE',
'PROCEDURE',
'FUNCTION',
'SEQUENCE'
))
LOOP
BEGIN
IF cur_rec.object_type = 'TABLE'
THEN
EXECUTE IMMEDIATE 'DROP '
|| cur_rec.object_type
|| ' "'
|| cur_rec.object_name
|| '" CASCADE CONSTRAINTS';
ELSE
EXECUTE IMMEDIATE 'DROP '
|| cur_rec.object_type
|| ' "'
|| cur_rec.object_name
|| '"';
END IF;
EXCEPTION
WHEN OTHERS
THEN
DBMS_OUTPUT.put_line ( 'FAILED: DROP '
|| cur_rec.object_type
|| ' "'
|| cur_rec.object_name
|| '"'
);
END;
END LOOP;
END;
/
但问题是,在此之后,即使我使用的是 sysdba 用户,我也无法在我的数据库中授予、创建或删除等。
我收到错误:
ORA-00604: 递归 SQL 级别 1 发生错误 ORA-00942: 表或视图不存在
请帮忙。谢谢。
【问题讨论】:
-
请告诉我您没有以 SYS 或 SYSTEM 用户身份运行该脚本...
-
没有。我在运行这个脚本时使用了另一个用户,即 ICBI。