在psl/devoloper中用sql语句,以下语句出错,请帮忙 update jds set jdtime='0300' ,optime=optime where jdtime is null and intime<=to_date('2005-8-25','yyyy-mm-dd')
出错提示:
ORA-01631:表JDS达到MAX # EXTENTS
ORA-06512:在JDS,LINE 9
ORA-04088:触发器 JDS 执行中出错
查年错误堆栈的程序源?
说明 字段    类型    长度 
jdtime  字符    4 
intime  日期  

解决方案 »

  1.   

    语句没错
    表的extents过大,
    可采取下列步骤
    0。dbschema 导出表结构
    1。rename 原表名
    2。以原结构新建表,但增大extents和next size
    3。unload出原表数据
    4。dbload 数据到新表
      

  2.   

    例如发现表t_prox_pb_log的extents过大,可以这样:
    0.dbschema -t t_prox_pb_log -d dbname -ss t_prox_pb_log.sql
    1-4步可以写成pblog.sh如下:
    >cat pblog.sh 
    (表结构用第0步生产的结构即可)
    [code:1:a96ccbdc4e]
    dbaccess  << -- 2>>pblog.err
    !
    database dbname;
    rename table t_prox_pb_log to t_pb_log_bak;create table t_prox_pb_log
      (
        oper_kind char(3) not null ,
        oper_detail char(6) not null ,
        trn_mode char(1) not null ,
        user_no1 char(20) not null ,
        cust_name char(40) not null ,
        trn_amt float,
        cert_no integer,
        cert_num integer,
        trn_code char(4),
        trn_date char(8),
        trn_time char(6),
        trn_bank char(4),
        oper_no char(4),
        seq_no smallint,
        trn_stat char(1),
        primary key (trn_date,trn_bank,oper_no,seq_no)
      ) extent size 2048 next size 1024 lock mode row;
    revoke all on t_prox_pb_log from "public";create index i_prox_pb_log2 on t_prox_pb_log (user_no1);
    unload to "t_pb_log.txt" select * from t_pb_log_bak;
    !
    --
    dbload -d dbname -c load_log -l dbload_errlog -n 1000  -k[/code:1:a96ccbdc4e]
    控制文件load_log如下:
    > cat load_log
    FILE t_pb_log.txt DELIMITER '|' 15;
    INSERT INTO t_prox_pb_log;