| 0 | SELECT STATEMENT | | 1 |
| 1 | TABLE ACCESS BY INDEX ROWID| BIN$/jnbfhsfQdC3s6sz0KECvQ==$0 | 1 |
|* 2 | INDEX RANGE SCAN | BIN$PsNuoiu2THyEmeMaVfxKRg==$0 | 1 |
--------------------------------------------------------------------------------
Predicate Information (identified by operation id):
---------------------------------------------------
2 - access("OBJECT_ID"=1000)
Note
-----
- dynamic sampling used for this statement (level=2)
18 rows selected
说明:数据表和索引结构,在Oracle中都是被识别认可的。甚至在执行计划生成过程中,索引都是被接受的。
但是,如果尝试进行DDL或者DML操作,就会报错。
SQL> delete from "BIN$/jnbfhsfQdC3s6sz0KECvQ==$0";
delete from "BIN$/jnbfhsfQdC3s6sz0KECvQ==$0"
ORA-38301: 无法对回收站中的对象执行 DDL/DML
SQL> drop table "BIN$/jnbfhsfQdC3s6sz0KECvQ==$0";
drop table "BIN$/jnbfhsfQdC3s6sz0KECvQ==$0"
ORA-38301: 无法对回收站中的对象执行 DDL/DML
注意:每一次在进行DDL或者DML操作的时候,Oracle都会将这个信息实时的写入到alert log中。
Sun Oct 09 18:29:30 2016
performing DML/DDL operation over object in bin.
Sun Oct 09 18:50:59 2016
performing DML/DDL operation over object in bin.
3、结论和解决
那么,为什么会在Resource Manager运行的任务中出现报错呢?一种猜想是在调度任务中,视图对数据表或者索引(回收站)中进行整理或者处理,引发了报错信息。处理方法也比较简单,如果频繁出现,可以考虑将回收站清空。