exp导出出现:ORA-00904: "POLTYP": invalid identifier

相关文章:
    《exp导出出现:ORA-00904: : invalid identifier》:http://blog.itpub.net/23135684/viewspace-1336722/

exp导出老是出现ORA-00904: "POLTYP": invalid identifier可能有两个原因:
1).服务器和客户端一个是x86bit的,一个是x86_64bit的安装程序。
2).客户端和服务器端的版本不兼容。

下面是做的一些测试:

>情况1:
windows x86_64bit 11.2.0.1 的客户端导出windows x86 10.2.0.3的Oracle Database。
无法执行导出,接收到ORA-00904报错。
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "POLTYP": 标识符无效
EXP-00000: 导出终止失败

>情况2:
Linux x86_64bit 10.2.0.5 的客户端导出windows x86 10.2.0.3的Oracle Database。
无法执行导出,接收到ORA-00904报错。
EXP-00008: ORACLE error 904 encountered
ORA-00904: "POLTYP": invalid identifier
EXP-00000: Export terminated unsuccessfully

>情况3:
windows x86 11.1.0.6的客户端导出windows x86 10.2.0.3的Oracle Database。
可以进行导出,但是导出有一大堆ORA-00904报错。
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: 语句未进行语法分析
. . 正在导出表                  SM_T_SYS_PARAM
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": 标识符无效
. . 正在导出表               SM_T_SYS_WORKFLOW
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: 语句未进行语法分析
. . 正在导出表                       SM_T_USER
EXP-00008: 遇到 ORACLE 错误 904
ORA-00904: "MAXSIZE": 标识符无效
. . 正在导出表                   SM_T_USER_ORG
EXP-00008: 遇到 ORACLE 错误 1003
ORA-01003: 语句未进行语法分析

>情况4:
windows x86 10.2.0.1的客户端导出windows x86 10.2.0.3的Oracle Database。
导出正常。

由上可以总结出,x86_64bit的Oracle导出x86bit的Oracle会报此错,11gR1,11gR2导出10g的Oracle也会报此错,只有满足10g的x86bit客户端导出10g的x86bit的Oracle Database才能正常导出。

--end--

导出文章二说明:

转自http://www.cublog.cn/u/30637/showart_481055.html
Oracle的imp/exp组件是我们常用的工具,它的一个操作原则就是向下兼容。下面是据此总结的几个使用规则和相关测试:

规则1:低版本的exp/imp可以连接到高版本(或同版本)的数据库服务器,但高版本的exp/imp不能连接到低版本的数据库服务器

1.1 使用9i客户端通过imp连接到10g数据库


C:\Documents and Settings\yuechaotian>exp userid=hdtest/[email protected] tables=(ab01) rows=n file=d:\x.dmp

Export: Release 9.2.0.1.0 - Production on 星期三 2 月 20 10:09:55 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

连接到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production 
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 
注 : 将不会导出表数据(行)

即将导出指定的表通过常规路径 ...
. . 正在导出表                             AB01
在没有警告的情况下成功终止导出。

1.2 使用10g客户端通过imp连接9i数据库:连接失败(而不是导出失败)


C:\Documents and Settings\yuechaotian>exp userid=hbjb_kf_hd/[email protected] owner=hdtest file=d:\x.dmp

Export: Release 10.2.0.1.0 - Production on 星期三 2 月 20 09:57:22 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

EXP-00056: 遇到 ORACLE 错误 6550
ORA-06550: 第 1 行 , 第 41 列 :
PLS-00302: 必须说明 ‘SET_NO_OUTLINES‘ 组件 
ORA-06550: 第 1 行 , 第 15 列 :
PL/SQL: Statement ignored
EXP-00000: 导出终止失败

规则2:高版本exp出的dmp文件,低版本无法imp(无法识别dmp文件)

2.1 使用10g客户端exp出10g的数据


C:\Documents and Settings\yuechaotian>exp userid=test/[email protected] owner=test file=d:\10g.dmp

Export: Release 10.2.0.1.0 - Production on 星期三 2 月 20 11:16:39 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集 
服务器使用 AL32UTF8 字符集 ( 可能的字符集转换 )

即将导出指定的用户 ...

……

导出成功终止 , 但出现警告。

C:\Documents and Settings\yuechaotian>

2.2 使用9i客户端imp上面所导出的dmp文件到10g:可以连接到10g中,但无法识别文件


C:\Documents and Settings\yuechaotian>imp userid=test/[email protected] fromuser=test touser=test file=d:\10g.dmp

Import: Release 9.2.0.1.0 - Production on 星期三 2 月 20 11:20:33 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

连接到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

IMP-00010: 不是有效的导出文件,标题验证失败 
IMP-00000: 未成功终止导入

C:\Documents and Settings\yuechaotian>

规则3:低版本exp出的dmp文件,高版本可以imp(向下兼容)

3.1 使用9i客户端exp出9i中的数据


C:\Documents and Settings\yuechaotian>exp userid=test/[email protected] owner=test file=d:\9i.dmp

Export: Release 9.2.0.1.0 - Production on 星期三 2 月 20 11:25:04 2008

Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.

连接到 : Oracle9i Enterprise Edition Release 9.2.0.1.0 - Production
With the Partitioning, OLAP and Oracle Data Mining options
JServer Release 9.2.0.1.0 - Production
已导出 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集

即将导出指定的用户 ...

……

在没有警告的情况下成功终止导出。

C:\Documents and Settings\yuechaotian>

3.2 使用10g客户端imp到10g数据库中


C:\Documents and Settings\yuechaotian>imp userid=test/[email protected] fromuser=test touser=test file=d:\9i.dmp

Import: Release 10.2.0.1.0 - Production on 星期三 2 月 20 11:28:46 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

经由常规路径由 EXPORT:V09.02.00 创建的导出文件 
已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入 
导入服务器使用 AL32UTF8 字符集 ( 可能的字符集转换 )
. . 正在导入表                  "AUDIT_ACTIONS" 导入了          144 行

……

成功终止导入 , 但出现警告。

C:\Documents and Settings\yuechaotian>

规 则4:从Oracle 低版本的Export数据可以Import到Oracle高版本中,但限于Oracle的相邻版本,如从Oracle 7 到 Oracle 8。对于两个不相邻版本间进行转换,如从Oracle 6 到 Oracle 8,则应先将数据输入到中间版本—Oracle 7,再从中间数据库转入更高版本。

我使用10g的imp功能,可以将由817导出的dmp文件直接导入10g中,这与该规则的介绍不同。(该规则出自高道强的《 Oracle导入导出工具实现数据库移植》)


C:\Documents and Settings\yuechaotian>imp userid=test/test fromuser=scott touser=test file=d:\tyc.dmp

Import: Release 10.2.0.1.0 - Production on 星期三 2 月 20 14:03:33 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到 : Oracle Database 10g Enterprise Edition Release 10.2.0.1.0 - Production
With the Partitioning, OLAP and Data Mining options

经由常规路径由 EXPORT:V08.01.07 创建的导出文件

警告 : 这些对象由 SCOTT 导出 , 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入 
导入服务器使用 AL32UTF8 字符集 ( 可能的字符集转换 )
导出服务器使用 ZHS16GBK NCHAR 字符集 ( 可能的 ncharset 转换 )
. 正在将 SCOTT 的对象导入到 TEST
. . 正在导入表                        "ACCOUNT" 导入了            5 行 
. . 正在导入表                          "BONUS" 导入了            0 行 
. . 正在导入表                           "DEPT" 导入了            4 行 
. . 正在导入表                            "EMP" 导入了           14 行 
. . 正在导入表                        "RECEIPT" 导入了            1 行 
. . 正在导入表                       "SALGRADE" 导入了            5 行 
即将启用约束条件 ...
成功终止导入 , 没有出现警告。

C:\Documents and Settings\yuechaotian>

以上操作,对于OracleXE的10g版本同样适用:


C:\Documents and Settings\yuechaotian>imp userid=test/test fromuser=scott touser=test file=d:\tyc.dmp

Import: Release 10.2.0.1.0 - Production on 星期三 2 月 20 14:15:51 2008

Copyright (c) 1982, 2005, Oracle.  All rights reserved.

连接到 : Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production

经由常规路径由 EXPORT:V08.01.07 创建的导出文件

警告 : 这些对象由 SCOTT 导出 , 而不是当前用户

已经完成 ZHS16GBK 字符集和 AL16UTF16 NCHAR 字符集中的导入 
导出服务器使用 ZHS16GBK NCHAR 字符集 ( 可能的 ncharset 转换 )
. 正在将 SCOTT 的对象导入到 TEST
. . 正在导入表                        "ACCOUNT" 导入了            5 行 
. . 正在导入表                          "BONUS" 导入了            0 行 
. . 正在导入表                           "DEPT" 导入了            4 行 
. . 正在导入表                            "EMP" 导入了           14 行 
. . 正在导入表                        "RECEIPT" 导入了            1 行 
. . 正在导入表                       "SALGRADE" 导入了            5 行 
即将启用约束条件 ...
成功终止导入 , 没有出现警告。

C:\Documents and Settings\yuechaotian>

时间: 2024-08-08 22:08:28

exp导出出现:ORA-00904: "POLTYP": invalid identifier的相关文章

[转]解决ORACEL数据库“exp导出老是出现ORA-00904”

1.首先检查是不是字段名或者时表名错误,如果没有那就继续: 2.下面的分析资料来自:http://blog.itpub.net/23135684/viewspace-680615/ exp导出老是出现ORA-00904: "POLTYP": invalid identifier可能有两个原因:1).服务器和客户端一个是x86bit的,一个是x86_64bit的安装程序.2).客户端和服务器端的版本不兼容. 下面是做的一些测试: >情况1:windows x86_64bit 11.

Oracle 11G在用EXP 导出时,空表不能导出解决[转]

转自:http://wanwentao.blog.51cto.com/2406488/545154 11G中有个新特性,当表无数据时,不分配segment,以节省空间 解决方法: 1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME         

高版本->低版本迁移,低版本客户端连接高版本数据库EXP导出报错EXP-00008,ORA-01455,EXP-00000

生产环境: 源数据库:RHEL + Oracle 11.2.0.3 目标数据库:HP-UX + Oracle 10.2.0.4 需求:迁移部分表  11.2.0.3-->10.2.0.4,若迁移范围内的有些表在目标库已经存在,则替换. 本次迁移数据量<1G. 初定方案:低版本的客户端连接到高版本数据库,用低版本导出,低版本导入. 1.采用初定方案,目标数据库所在服务器连接到源数据库,exp导出过程中报错. ZJCRNOPDB 36: sqlplus -version SQL*Plus: Rel

EXP-00091 EXP导出错误问题困惑

今天要求将部分表数据导出 提供的exp导出脚本如下: USERID=x/[email protected] BUFFER=102400 ROWS=Y  LOG=T_DAYLOG_CALLBYSERVICE.log FILE=T_DAYLOG_CALLBYSERVICE.dmp tables=T_DAYLOG_CALLBYSERVICE query="where logdate between to_date('20150810','YYYYMMDD') and  to_date('2015082

解决Oracle 11g在用EXP导出时,空表不能导出

一.问题原因:     11G中有个新特性,当表无数据时,不分配segment,以节省空间     1.insert一行,再rollback就产生segment了. 该方法是在在空表中插入数据,再删除,则产生segment.导出时则可导出空表. 2.设置deferred_segment_creation 参数 show parameter deferred_segment_creation NAME                                 TYPE        VALU

一则Oracle EXP导出报错的解决办法(转载)

前段时间上海某保险客户IT主管打电话过来,说他们的开发人员在开发环境中执行EXP报错,让我过去检查下.本着“客户为本,服务为根”的宗旨,第一时间赶到客户现场. 和客户开发人员沟通下,查看EXP报错的具体信息: 正在导出 pre-schema 过程对象和操作 EXP-00008: 遇到 ORACLE 错误 4063 ORA-04063: package body "DMSYS.DBMS_DM_IMP_INTERNAL" has errors ORA-06508: PL/SQL: coul

oracle EXP 导出空表的方法

Oracle Exp 导出默认只会将有数据的导出,要导出空表的话可以先把下面查询出来的语句,执行后,再进行导出 select 'alter table '||owner||'.'||table_name||' allocate extent;' from dba_tables t where T.SEGMENT_CREATED='NO' AND t.OWNER like '%???%' order by t.OWNER;

Oracle11g使用exp导出空表

1.Oracle11g默认对空表不分配segment,故使用exp导出Oracle11g数据库时,空表不会导出. 2.设置deferred_segment_creation 参数为FALSE后,无论是空表还是非空表,都分配segment. 在sqlplus中,执行如下命令: SQL>alter system set deferred_segment_creation=false; 查看:   SQL>show parameter deferred_segment_creation; 该值设置后

oracle EXP导出一张表时使用query参数指定where条件

oracle exp 导出一个表的部分内容,使用query参数可加上SQL的where条件进行过滤 注意:如果需要使用到日期字符串格式等单引号,需要使用双引号将where条件括起来,而且双引号要用\做转义 exp test/[email protected] file=D:\test_bak.dmp log=D:\exp0811.log tables=(tbl_test) query=\"where start_time>='20160701000000' and start_time&l