Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle 11g:ORA-00604:递归SQL级别1发生错误_Sql_Oracle11g - Fatal编程技术网

Oracle 11g:ORA-00604:递归SQL级别1发生错误

Oracle 11g:ORA-00604:递归SQL级别1发生错误,sql,oracle11g,Sql,Oracle11g,我执行了下面的脚本,它工作正常: BEGIN FOR cur_rec IN (SELECT object_name, object_type FROM user_objects WHERE object_type IN ('TABLE', 'VIEW', 'PACKAGE'

我执行了下面的脚本,它工作正常:

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:表或视图不存在


请帮忙。谢谢。

递归SQL错误的一个可能原因是触发器。您可能遇到了以下情况:

  • 您有一个触发每个DDL语句的触发器
  • 此触发器尝试将记录插入某种审核/日志表中
  • 您的审核/日志表已被清理脚本删除
要获取所有触发器的列表,可以使用

select * from dba_triggers
where trigger_type not in ('BEFORE EACH ROW','AFTER EACH ROW')

(您可以排除行级触发器,因为它们在概念上属于表,并且在您删除表时会自动删除)。识别出违规触发器后,您可以禁用或删除它。

请告诉我您没有以SYS或SYSTEM用户身份运行该脚本…否。我使用另一个用户运行这个脚本,它是ICBI.hi,谢谢你的输入。我想你是对的。但问题是在执行SELECT语句时仍然显示错误。