遇到oracle错误932,OracleEXP-00056: ORACLE error 932 encountered(ORA-00932)

本文介绍了解决Oracle数据库导出时遇到ORA-00932错误的方法。此错误通常由于不一致的数据类型引起,如期望BLOB/CLOB而实际得到的是CHAR。文章提供了详细的步骤来修复SYS.KU$_%视图中的无效对象。

1、问题?

EXP-00056: ORACLE error 932 encountered

ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR

EXP-00056: ORACLE error 932 encountered

ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR

EXP-00000: Export terminated unsuccessfully

2、答案:

Full Export From 10.2.0.1 Aborts With EXP-56 ORA-932 (Inconsistent Datatypes) EXP-0 [ID 339938.1]

Symptoms

A full database export from a Oracle10g database aborts with:

...

. exporting cluster definitions

EXP-00056: ORACLE error 932 encountered

ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR

EXP-00056: ORACLE error 932 encountered

ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR

EXP-00000: Export terminated unsuccessfully

EXP-00000: Export terminated unsuccessfully

Cause

One possible cause (note there might be others):

Script. $ORACLE_HOME/rdbms/admin/catmeta.sql has been run recently.

There are several invalid SYS.KU$_% views in the dictionary:

-- invalid objects:

SET lines 120 pages 2000

COL status FOR a9

COL object_type FOR a20;

COL owner.object FOR a50

SELECT status, object_id, object_type, owner||'.'||object_name "OWNER.OBJECT"

FROM dba_objects

WHERE status != 'VALID' AND object_name NOT LIKE 'BIN$%'

ORDER BY 4,2;

STATUS     OBJECT_ID OBJECT_TYPE     OWNER.OBJECT

--------- ---------- --------------- --------------------------------

INVALID         7105 PACKAGE BODY    SYS.DBMS_METADATA

INVALID         6683 VIEW            SYS.KU$_10_1_COMMENT_VIEW

INVALID         6788 VIEW            SYS.KU$_10_1_IND_STATS_VIEW

INVALID         6778 VIEW            SYS.KU$_10_1_PIND_STATS_VIEW

INVALID         6752 VIEW            SYS.KU$_10_1_PTAB_STATS_VIEW

INVALID         6770 VIEW            SYS.KU$_10_1_SPIND_STATS_VIEW

INVALID         6748 VIEW            SYS.KU$_10_1_TAB_ONLY_STATS_VIEW

... (etc)

A query in SQL*Plus on sys.ku$_xmlschema_view also fails with ORA-932:

SET lines 200 pages 2000

COL url FOR a60 WRA

SELECT url, local, stripped_val

FROM sys.ku$_xmlschema_view;

ORA-00932: inconsistent datatypes: expected BLOB, CLOB got CHAR Solution

For reasons having to do with compatibility, the XDB objects cannot be created by the catproc.sql script. The script. catproc.sql therefore calls the catmeta.sql script, which contains fake object views for XDB objects.

The real object views are defined in the catmetx.sql script. (this script. is invoked by catxdbv.sql which is invoked by catqm.sql).

Solution #1

Run following scripts while connected as SYS user:

> sqlplus /nolog

SQL> connect / as sysdba

SQL> @?/rdbms/admin/catmetx.sql

SQL> @?/rdbms/admin/utlrp.sql

SQL> exit

### IMP-00058: ORACLE error 1017 encountered 解决方法 在Oracle数据库的导入过程中,`IMP-00058: ORACLE error 1017 encountered` 是一个常见的错误提示。错误 `ORA-01017` 表示“无效的用户名/密码组合”,意味着导入工具无法使用提供的凭据连接到目标数据库。以下是该错误的常见原因及解决方法: #### 原因分析 1. **用户名或密码错误** 在执行 `imp` 命令时,如果输入的用户名或密码错误,系统将无法连接到数据库并抛出 `ORA-01017` 错误[^2]。 2. **未正确指定连接字符串** 如果未正确指定数据库的连接标识符(如 TNS 名称),可能导致连接失败。 3. **数据库服务未启动** 目标数据库实例未启动或监听器未运行,也可能导致连接失败。 4. **操作系统身份验证失败** 如果使用了操作系统身份验证(如 `OPS$` 用户),但配置不当,也可能导致登录失败。 #### 解决方法 - **验证用户名和密码** 确保在执行导入命令时提供了正确的用户名和密码。例如: ```bash imp username/password@tns_alias file=export.dmp ``` 如果不确定凭据是否正确,可以通过 SQL*Plus 测试连接: ```bash sqlplus username/password@tns_alias ``` 如果 SQL*Plus 同样报错 `ORA-01017`,则说明用户名或密码有误,需更正后再次尝试导入[^2]。 - **检查 TNS 配置** 确认 `tnsping tns_alias` 能够成功解析,并且监听器正在运行。可以使用以下命令测试: ```bash tnsping tns_alias lsnrctl status ``` - **确认数据库实例状态** 确保目标数据库已启动,可以通过以下命令检查实例状态: ```bash sqlplus / as sysdba SQL> select instance_name, status from v$instance; ``` - **使用完整连接字符串** 如果 TNS 名称解析存在问题,可以尝试使用完整连接字符串进行导入: ```bash imp username/password@'(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=hostname)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=service_name)))' file=export.dmp ``` - **检查操作系统身份验证设置** 如果使用的是操作系统身份验证(如 `username/password` 被省略),请确保 Oracle 的 `OS_AUTHENT_PREFIX` 参数配置正确,并且操作系统用户与数据库用户匹配。 #### 导入命令示例 一个完整的导入命令示例如下: ```bash imp scott/tiger@orcl file=emp.dmp log=import.log ``` 该命令将使用用户名 `scott`、密码 `tiger` 连接到名为 `orcl` 的数据库实例,并导入 `emp.dmp` 文件中的数据。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值