操作系统是Solaris.建两张表中的任何一张都不会出错,但是两张同时建的话,就会报错。下面是建表语句:
CREATE TABLE TABLE_OWNER.aq_port_range_conf
(
port_range_id            integer     NOT NULL,
logical_machine_id  integer     NOT NULL,
range_size          integer     NOT NULL,
port_start          integer     NOT NULL,
CONSTRAINT pk_aq_port_range_conf PRIMARY KEY (port_range_id) using index tablespace TINYINDEXSPACE,
CONSTRAINT fk_aq_port_range_conf FOREIGN KEY (logical_machine_id) REFERENCES node_cluster(logical_machine_id) ON DELETE CASCADE)
STORAGE (initial TINYTABLESIZE next TINYTABLESIZE pctincrease TINYTABLEPCTINCREASE) tablespace TINYTABLESPACE;CREATE TABLE TABLE_OWNER.aq_port_range (
logical_machine_id      integer      NOT NULL,
port_range_id           integer      NOT NULL,
port                    integer      NOT NULL,
logical_process_name    VARCHAR2(10)  NULL,
logical_process_instance        integer      NULL,
pid                     integer      NULL,
CONSTRAINT pk_aq_port_range PRIMARY KEY (logical_machine_id,port_range_id,port) using index tablespace TINYINDEXSPACE,
CONSTRAINT fk_aq_port_range FOREIGN KEY (port_range_id) REFERENCES aq_port_range_conf(port_range_id) ON DELETE CASCADE)
STORAGE (initial TINYTABLESIZE next TINYTABLESIZE pctincrease TINYTABLEPCTINCREASE) tablespace TINYTABLESPACE;
这里是错误提示:
CREATE TABLE swpro_xyz_1101.sequences
*
ERROR at line 1:
ORA-01658: unable to create INITIAL extent for segment in tablespace STAFFWAR
上面所说的sequences表的建表语句是:
CREATE TABLE TABLE_OWNER.sequences
(
seq_id number(5) NOT NULL,
seq_val number(20) NOT NULL,
seq_name varchar2(24) NOT NULL,
CONSTRAINT pk_sequences PRIMARY KEY (seq_id) using index tablespace TINYINDEXSPACE
) STORAGE (initial TINYTABLESIZE next TINYTABLESIZE pctincrease TINYTABLEPCTINCREASE) tablespace TINYTABLESPACE;
grant  select, insert, delete, update on TABLE_OWNER.sequences to FOREGROUND_USER;折磨我一整天了,现在所知道的就是:单独建aq_port_range_conf或aq_port_range都不会出错,但是放一起就会报错,真郁闷哪位大大给说说啊,谢谢了

解决方案 »

  1.   

    前边的两个建表语句跟你的报错没有逻记关系啊。理论上不应该。除非你有其它的代码要执行。你的报错是说明,用户swpro_xyz_1101无法在STAFFWAR表空间上创建,原因是磁盘空间不足或者是用户swpro_xyz_1101在STAFFWAR表空间上的使用限额达到最大值了。
      

  2.   

    逻辑上是好像没有关系,使用限额这个是什么意思?哪里设置的?
    对ORACLE的建表不是很熟悉。
      

  3.   

    修改限额语法:
    alter user xxx quota 10m on tablespaceName;
    查看限额:
    select *from dba_ts_quotas;
      

  4.   

    这是用system用户登陆后输入select *from dba_ts_quotas;的结果:        tablespace name    username     bytes    maxbytes       blockes    max blockes  dropped
    1 SYSAUX            DMSYS 262144 209715200 32    25600 NO
    2 SYSAUX            OLAPSYS 16318464 -1 1992    -1         NO
    3 SYSAUX            SYSMAN 55902208 -1 6824    -1         NO有什么地方需要修改吗?另,谢谢oracledbalgtu 的回复。