昨天晚饭后,正悠哉地在网上闲逛,电话响了. 客户打来的......
原来是一个程序突然错误提示,而此前一直是运行良好的.
客户就是上帝!开始检查,因为这个程序是一离职的同事交接的,我不甚了了,只得从源码部分看起.
出现的错误提示很笼统,就是一句,不能进行XXX操作.不过根据程序的表现判断,源代码不大可能出现问题,应该是数据库部分出现了问题,连接上去看相应的存储过程,查看最后一次DDL操作时间,嗯,最近没有修改过.根据用户提供的程序执行界面截图,试着组织参数在sqlplus里执行了一下存储过程.果然报错了:
ORA-01658: unable to create INITIAL extent for segment in tablespace XXXXX
原来如此,这个错误编号的详细资料如下:
ORA-01658: unable to create INITIAL extent for segment in tablespace string
Cause: Failed to find sufficient contiguous space to allocate INITIAL extent for segment being created.
Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the tablespace or retry with a smaller value for INITIAL.
ORA-01658: unable to create INITIAL extent for segment in tablespace string
Cause: Failed to find sufficient contiguous space to allocate INITIAL extent for segment being created.
Action: Use ALTER TABLESPACE ADD DATAFILE to add additional space to the tablespace or retry with a smaller value for INITIAL.
解决的方法就是通过类似这样的语句:
ALTER TABLESPACE tools
ADD DATAFILE 'c:/oracle/oradata/orabase/tools02.tom' SIZE 20M;
ADD DATAFILE 'c:/oracle/oradata/orabase/tools02.tom' SIZE 20M;
客户本身对oracle操作很熟悉,于是直接提供错误代码给他,搞定!
![](/fckeditor/editor/images/smiley/msn/lightbulb.gif)
总结一下,如果当初写程序的时候,针对存储过程可能出现的错误代码进行捕捉并提示,我也不需要进行这次操作了.
也许程序的编写人员认为过于专业的错误信息,对一般的用户没有意义,故此忽略了.但是不是也可以在后台生成一个错误日志,供维护人员查看呢?
也许程序的编写人员认为过于专业的错误信息,对一般的用户没有意义,故此忽略了.但是不是也可以在后台生成一个错误日志,供维护人员查看呢?