今天在插入数据的时候出现ora-01536:space quota exceeded for tablespace **.
我的插入语句为:insert into TBLENGPROCESSNODEMASTER (NODEID, PROCESSNO, NODENO, NODETYPE, GROUPNO, CHECKIOOPTION, CREATOR, CREATEDATE, REVISER, REVISEDATE, MEMO, OPTYPE, POSITIONX, POSITIONY, FACTORYNO, DEPARTMENTNO, CYCLETIME, YIELDRATE, ACCUMCYCLETIME, ACCUMYIELDRATE, LINENO)
values ('N228AA6001B20-0000', 'N228AA6001B20', 'LAM_CUT', 0, 0, 0, 'DAA0018', to_date('20-04-2006', 'dd-mm-yyyy'), 'DAA0018', to_date('20-04-2006', 'dd-mm-yyyy'), '', null, '435', '300', 'TJ2', '', '0', 0.0000, '0', 0.0000, 'A');
但是如果我把插入语句改为insert into TBLENGPROCESSNODEMASTER (NODEID, PROCESSNO, NODENO, NODETYPE, GROUPNO, CHECKIOOPTION, CREATOR, CREATEDATE, REVISER, REVISEDATE, MEMO, OPTYPE, POSITIONX, POSITIONY, FACTORYNO, DEPARTMENTNO, CYCLETIME, YIELDRATE, ACCUMCYCLETIME, ACCUMYIELDRATE, LINENO)
values ('N228AA6001B20-000', 'N228AA6001B20', 'LAM_CUT', 0, 0, 0, 'DAA0018', to_date('20-04-2006', 'dd-mm-yyyy'), 'DAA0018', to_date('20-04-2006', 'dd-mm-yyyy'), '', null, '435', '300', 'TJ2', '', '0', 0.0000, '0', 0.0000, 'A');这样又可以正常插入。不知道什么原因?好奇怪,应该不是表空间的问题吧?我的字符串也没有超过字符串定义的长度呀?希望那位高手能帮指点。谢谢!!

解决方案 »

  1.   

    明显的表空间不足了。alter user 你的用户名 quota 1000m on **表空间名;为什么下面的可以哪,可能是插入到以前delete的记录位置去了。
      

  2.   

    谢谢各位的热心帮助。第一个插入语句的字段'N228AA6001B20-0000'仅比第二个插入语句的字段多了一个字符。如果真的是表空间不够了,那就还得找领导授权了。但是有一点我不明白,除了这个表不能插入,我在这个数据库的其他的表都能够插入呀?
      

  3.   

    因为表的存储空间是可以预先分配的,不是每次insert都新分配。
    在预先分配的空间没有用完前,当然可以继续insert了。
    只是不能再分配新的空间而已。
      

  4.   

    可能你其他的表不在这个表空间或者插入这些表的数据比较你前面报错的表数据要小。按报错的情况应该是表空间不足,扩展一下表空间或add new datafile on this tablespace.你们领导是DBA吗?要找领导授权,呵呵。