分类: Oracle
2008-07-01 09:07:14
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
注意:不要随意改动Oracle系统视图,执行完后,应立刻恢复。切记!!
现象2:
查看oracle的环境变量语言集:
a、数据库服务器字符集:
select * from nls_database_parameters
b、客户端字符集:
select * from nls_instance_parameters
c、将oracle用户的环境变量(.profile文件或.cshrc文件)字符集改成和数据库服务器字符集一样。
通常我们设定为:chinese_china.ZHS16GBK