指定数据库的SID来登入sqlplus
export ORACLE_SID=实例名
查询实例名
select instance_name from v$instance;
ORA-01000: 超出打开游标的最大数
方案一:
1、将默认游标数进行调大,但是不推荐该方案,该方案会有一个隐藏问题,当你执行数超过设置的游标数时,还是爆出此错误
2、要采用该方案的话,也可以改造代码将执行数控制在最大游标数之前执行。进行分批执行
// 查看数据库当前的游标数配置
show parameter open_cursors;
// 增大游标数
ALTER SYSTEM SET OPEN_CURSORS = 新的大小 SCOPE=BOTH;
方案二:更换执行方法为executeBatch()
但是在进行大批量数据库操作时,要进行分批执行
ORA-38301: 无法对回收站中的对象执行DDL/DML
原因: 脚本中引用到了被删除的对象, 需要下清空下回收站
// sys用户执行
purge dba_recyclebin;
// 若没有sys用户,则使用应用链接的数据库用户执行:
purge user_recyclebin;
统计表空间使用率
SELECT * FROM (
select t.tablespace_name tblspace_name,
substr(t.contents, 1, 1) tipo,
trunc(d.tbs_maxsize/1024/1024) "total_size(MB)",
trunc((d.tbs_size-nvl(s.free_space, 0))/1024/1024) "used_size(MB)",
trunc((d.tbs_maxsize - d.tbs_size + nvl(s.free_space, 0))/1024/1024) "free_size(MB)",
decode(d.tbs_maxsize, 0, 0, trunc((d.tbs_size-nvl(s.free_space, 0))*100/d.tbs_maxsize)) "used_rate(%)"
from
( select SUM(bytes) tbs_size,
SUM(decode(sign(maxbytes - bytes), -1, bytes, maxbytes)) tbs_maxsize, tablespace_name tablespace
from ( select nvl(bytes, 0) bytes, nvl(maxbytes, 0) maxbytes, tablespace_name
from dba_data_files
union all
select nvl(bytes, 0) bytes, nvl(maxbytes, 0) maxbytes, tablespace_name
from dba_temp_files
)
group by tablespace_name
) d,
( select SUM(bytes) free_space,
tablespace_name tablespace
from dba_free_space
group by tablespace_name
) s,
dba_tablespaces t
where t.tablespace_name = d.tablespace(+) and
t.tablespace_name = s.tablespace(+)
order by 5)
where tipo <>'T'
and tipo <>'U';