分类:
2008-10-27 13:58:18
现象描述:
oracle数据库从客户端导出端某个表,产生ora-00003错误;从端本机导出时,发生ora-00091错误。
原因分析:
现象1:用9205以前的版本导出其后版本的表,且此表中有带LOB字段时,也会出现exp-00003错误。
现象2:oracle用户的环境变量语言集和oralce数据库中的环境变量语言集不相同。
临时解决方案:
现象1:使用9205以上的版本进行导出。
永久解决方案:
现象1:更改数据库服务器端的oracle系统视图EXU9TNE的定义,该视图定义为: $cat $ORACLE_HOME/rdbms/admin/catexp.sql
CREATE OR REPLACE VIEW EXU9TNE (tsno, fileno, blockno, length) AS SELECT ts#, segfile#, segblock#, length FROM sys.uet$ WHERE ext# = 1 |
以sys用户登录数据库服务器重新建立该视图:
CREATE OR REPLACE VIEW EXU9TNE (tsno, fileno, blockno, length) AS SELECT ts#, segfile#, segblock#, length FROM sys.uet$ WHERE ext# = 1 UNION ALL select * from sys.exu9tneb |
注意:不要随意改动系统视图,执行完后,应立刻恢复。切记!!
现象2:
查看oracle的环境变量语言集:
a、数据库服务器字符集:
select * from nls_database_parameters
b、客户端字符集:
select * from nls_instance_parameters
c、将oracle用户的环境变量(.profile文件或.cshrc文件)字符集改成和数据库服务器字符集一样。
通常我们设定为:chinese_china.ZHS16GBK