数据库提示错误代码ora 01688的解决方案一:
使用sys用户登录数据库,查询表空间占用情况,
(报这个错时,用PL/SQL用实例的用户名密码登不上去;注意要用sys用户登陆,“Connect as” 为sysdba,以下操作都是在PL/SQL中执行的)
1、确定是哪个表空间用满了(查看表空间利用率):
SELECT c.ts#, c.name, d.contents, d.extent_management, e.file_bytes, c.used,SUBSTR (c.used / e.file_bytes * 100, 1, 5)FROM (SELECT name, ts#, SUM(used) usedFROM (SELECT a.allocated_space * (SELECT value -- 查询db_block_size当前值FROM v$parameterWHERE name = 'db_block_size') / 1024/ 1024 used,b.ts#, b.nameFROM v$filespace_usage a, v$tablespace bWHERE a.tablespace_id = b.ts#)GROUP BY name, ts#) c,dba_tablespaces d,(SELECT ts#, SUM(bytes) / 1024/ 1024 file_bytesFROM v$datafileGROUP BY ts#) eWHERE c.name = d.tablespace_nameAND e.ts# = c.ts#ORDER BY ts#
若占用最大的为SYSAUX,确认SYSAUX中占用最大的表名:
执行如下:
select segment_name, sum(bytes) / 1024 / 1024from dba_segmentswhere tablespace_name = 'SYSAUX'group by segment_nameorder by 2 desc
若占用最大的为SYS_LOB开头,则执行如下sql,查询最大表名
```sqlselect table_name from dba_lobs where segment_name like 'SYS_LOB0000091620C00014$$';
若查询结果为:执行如下,可以表名开头为CLI_SWP使用存储过程,清除表内数据```sqlbegindbms_audit_mgmt.clean_audit_trail(audit_trail_type => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,use_last_arch_timestamp => FALSE);end;