oracle 表空间不足解决办法

问题:在对某一表空间进行新建表的时候,出现ora-01658的错误。

create 语句:

create table OA_ORGCONFIG
(
  OAOC_UNID      INTEGER not null,
  OAOC_UUID      VARCHAR2(32) not null,
  OAOC_CDATE     DATE,
  OAOC_UDATE     DATE,
  OAOC_CUSR      VARCHAR2(32),
  OAOC_REMARK    VARCHAR2(2000),
  OAOC_STATUS    VARCHAR2(10),
  OAOC_ORGUUID   VARCHAR2(2000),
  OAOC_ORGNAME   VARCHAR2(2000),
  OAOC_CONFIGXML CLOB
)
tablespace YWGOV
  pctfree 10
  initrans 1
  maxtrans 255
  storage
  (
    initial 128k
    next 128k
    minextents 1
    maxextents unlimited
  );

问题分析:

问题初步判断是因为表空间大小不够才造成在建表或则其他需要占用表空间大小的时候报错,包括建立索引等操作。

首先,我们先分析我们对应的表空间大小有多少:

1、查看表空间总大小SQL:select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;

2、查看表空间已使用大小及分配情况:

select SEGMENT_TYPE,owner,sum(bytes)/1024/1024 from  dba_segments  where tablespace_name='YWGOV' group by segment_type,owner

3、准备增加表空间大小:

查看表空间路径:select  * from dba_data_files

增加表空间大小:alter tablespace YWGOV add datafile 'D:\Oracle\PRODUCT\10.2.0\ORADATA\DBF\YWGOV1.ora' size 10M

(这里注意我们在创建表空间的时候采用的是dbf格式的文件,但是修改表空间采用的是ora,原理不懂,先mark等后续学习)

select tablespace_name,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;

alter tablespace users add datafile 'D:\app\Administrator\oradata\dev\USERS02.DBF' size 29536m;

经过上诉处理,查看表空间大小,确实增大,并且能够支持create table的操作。

oracle查询数据库中存储过程、索引、视图等的数量

select count(1) from user_objects where object_type = 'PROCEDURE'
select count(1) from user_objects where object_type = 'INDEX'
select count(1) from user_objects where object_type = 'VIEW'

select count(1) from user_objects where object_type = 'SEQUENCE'

查询表空间路径:

select * from dba_data_files

上一篇:zoj 1889 ones 数学


下一篇:转发 Delphi中线程类TThread 实现多线程编程