Oracle报错处理

ORA-01704

报错信息:ORA-01704: 字符串文字太长
报错原因:oracle clob字段插入超过4000个字符串时会报这个错。
解决办法:把要插入的长字符串分割成多个,使用to_clob函数后拼接起来。
例如:

1
insert into t_mail_send(mail_addr, content) values('xxx@abc.com', to_clob('内容1')||to_clob('内容2')||to_clob('内容n'));

ORA-01843

在用PL/SQL Developer 的命令行窗口导入数据时报错:ORA-01843: not a valid month
原因:导入的日期时间字段格式和客户端会话中使用的格式不一样。比如导入的是中文格式,客户端默认的是英文格式。
解决办法:修改nls_date_language参数为中文。
在命令行窗口执行:

1
ALTER SESSION SET nls_date_language='SIMPLIFIED CHINESE';

注:该命令只是当前会话有用。

ORA-01688

往Oracle数据库insert或imdmp导入数据时,报错:

1
ORA-01688: unable to extend table 表名 partition 表空间名(分区名) by 8192 in tablespace COLLECT_SPACE

报错原因:表空间不足了,在网上搜了一下出现这种表空间不足的问题一般有两种情况:一种是表空间的自动扩展功能没有打开;另一种确实是表空间确实不够用了,已经达到了扩展的极限。所以我们解决问题就应该先去查看Oracle表空间大小,然后看一下Oracle表空间的自动扩展功能是否打开;若确实是表空间不够用了就需要扩展表空间。
解决办法:
如果是表空间文件达到最大值了,则需要增加一个数据文件:

1
alter tablespace 表空间名称 add datafile '全路径的数据文件名称' size 8M autoextend on

------ 本文完 ------