Bug 7007594 - ORA-600 [12261] at DBMS_REDEFINITION.FINISH_REDEF_TABLE of partitioned table [ID 70075

 

Bug 7007594 - ORA-600 [12261] at DBMS_REDEFINITION.FINISH_REDEF_TABLE of partitioned table [ID 7007594.8]


 

Modified 11-NOV-2010     Type PATCH     Status PUBLISHED

 

 

Bug 7007594  ORA-600 [12261] at DBMS_REDEFINITION.FINISH_REDEF_TABLE of partitioned table

 This note gives a brief overview bug 7007594.
 The content was last updated on: 11-NOV-2010
 Click here for details of each of the sections below.

Affects:

Product (Component)

Oracle Server (Rdbms)

Range of versions believed to be affected

Versions BELOW 11.2

Versions confirmed as being affected

Platforms affected

Generic (all / most platforms affected)

Fixed:

This issue is fixed in

Symptoms:

Related To:

     

Description

Online redefinition of a partitioned table fails with ORA-600[12261].
 
Rediscovery Notes:
 During online redefinition of a partitioned table
 ORA-600[12261] is reported at DBMS_REDEFINITION.FINISH_REDEF_TABLE
 
Workaround
 None
 

HOOKS OERI:12261 PACKAGE:DBMS_REDEFINITION LIKELYAFFECTS XAFFECTS_10.2.0.1 XAFFECTS_V10020001 AFFECTS=10.2.0.1 XAFFECTS_10.2.0.2 XAFFECTS_V10020002 AFFECTS=10.2.0.2 XAFFECTS_10.2.0.3 XAFFECTS_V10020003 AFFECTS=10.2.0.3 XAFFECTS_10.2.0.4 XAFFECTS_V10020004 AFFECTS=10.2.0.4 XAFFECTS_11.1.0.6 XAFFECTS_V11010006 AFFECTS=11.1.0.6 XAFFECTS_11.1.0.7 XAFFECTS_V11010007 AFFECTS=11.1.0.7 XPRODID_5 PRODUCT_ID=5 PRODID-5 RDBMS XCOMP_RDBMS COMPONENT=RDBMS TAG_DBMSPKG TAG_OERI TAG_PART DBMSPKG OERI PART FIXED_10.2.0.5 FIXED_11.2.0.1

Please note: The above is a summary description only. Actual symptoms can vary. Matching to any symptoms here does not confirm that you are encountering this problem. Always consult with Oracle Support for advice.

References

Bug:7007594 (This link will only work for PUBLISHED bugs)
Note:245840.1 Information on the sections in this article



 

 

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

QQ:492913789

Email:ahdba@qq.com

Blog: http://www.cndba.cn/dave

网上资源: http://tianlesoftware.download.youkuaiyun.com

相关视频:http://blog.youkuaiyun.com/tianlesoftware/archive/2009/11/27/4886500.aspx

DBA1 群:62697716(); DBA2 群:62697977()

DBA3 群:62697850   DBA 超级群:63306533;    

聊天 群:40132017

--加群需要在备注说明Oracle表空间和数据文件的关系,否则拒绝申请

<think>嗯,用户的问题是关于Oracle数据库中的DBMS_REDEFINITION包的CAN_REDEF_TABLE过程的用法和示例。他们想检查某张表是否支持在线重定义。首先,我需要回忆一下这个包的作用和具体步骤。 我记得DBMS_REDEFINITION包用于在线重定义表结构,比如将普通表转为分区表,而不影响业务运行。而CAN_REDEF_TABLE过程是用来验证表是否满足在线重定义的条件。用户需要知道如何正确调用这个过程,以及具体的示例。 根据用户提供的引用内容,特别是引用[1]、[3]、[4]和[5],可以看到示例中的调用方式是使用exec命令执行存储过程,参数包括模式名、表名和选项。比如引用[1]中的例子是exec DBMS_REDEFINITION.CAN_REDEF_TABLE('TEST','CNDBA',DBMS_REDEFINITION.CONS_USE_PK)。这里第三个参数是选项,可能影响检查的条件。 接下来,我需要确认参数的正确顺序和可选值。根据Oracle文档,CAN_REDEFINITION的第三个参数通常指定约束类型,比如使用主键(CONS_USE_PK)或ROWID(CONS_USE_ROWID)。这可能影响到在线重定义的方式,用户需要根据表的结构选择合适的选项。 另外,用户需要知道如何执行这个存储过程,是否需要在SQL*Plus或其他工具中使用。示例中的exec命令适用于SQL*Plus环境。如果用户使用的是其他客户端工具,可能需要调整语法,比如使用BEGIN...END块。 可能的问题点包括参数顺序是否正确,是否需要指定所有参数,以及如何处理可能的错误。例如,如果表没有主键,是否必须使用ROWID选项?这时可能需要引用文档中的说明,如引用[4]提到的Oracle 12c文档链接,解释不同选项的适用情况。 用户提供的引用[5]提到在12c中finish_redef_table可以指定锁定时间,这可能与CAN_REDEF_TABLE无关,但需要注意版本差异对过程的影响。需要确认CAN_REDEF_TABLE在不同版本中的行为是否一致。 总结回答的结构应该是:先说明CAN_REDEF_TABLE的作用,然后给出使用步骤,包括参数说明和示例代码,最后提供注意事项和相关引用。确保示例覆盖有主键和无主键的情况,并指出常见错误和解决方法。 还需要生成相关问题,可能涉及在线重定义的后续步骤、参数选项的详细解释、错误处理等,确保用户能够全面了解整个流程。</think>### 逐步解答 使用Oracle数据库的$DBMS\_REDEFINITION.CAN\_REDEF\_TABLE$过程可以验证表是否支持在线重定义。以下是具体方法及示例: --- #### **步骤说明** 1. **验证表条件** 该过程检查表是否满足在线重定义要求: - 表必须存在主键或允许使用$ROWID$作为唯一标识 - 表不能是临时表、物化视图或包含某些特殊列类型[^4] 2. **参数说明** ```sql DBMS_REDEFINITION.CAN_REDEF_TABLE( uname IN VARCHAR2, -- 模式名 tname IN VARCHAR2, -- 表名 options_flag IN BINARY_INTEGER := CONS_USE_PK -- 约束类型选项 ); ``` - $options\_flag$可选值: - $CONS\_USE\_PK$(默认):使用主键作为唯一标识 - $CONS\_USE\_ROWID$:当无主键时使用$ROWID$[^3] 3. **执行验证** - **有主键的表** ```sql SQL> EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE('SCHEMA_NAME', 'TABLE_NAME'); ``` - **无主键的表** ```sql SQL> EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE('SCHEMA_NAME', 'TABLE_NAME', DBMS_REDEFINITION.CONS_USE_ROWID); ``` 4. **错误处理** - 若验证失败会抛出$ORA-12090$错误,需检查表结构或参数设置[^1] - 示例错误: ``` ORA-12090: 无法在线重新定义表 "SCHEMA.TABLE" ``` --- #### **完整示例** ```sql -- 检查test用户下的cndba表是否支持在线重定义(使用主键) SQL> EXEC DBMS_REDEFINITION.CAN_REDEF_TABLE('TEST', 'CNDBA', DBMS_REDEFINITION.CONS_USE_PK); ``` 若返回无错误提示,则表支持在线重定义。 --- #### **注意事项** 1. 确保操作期间表无DDL变更 2. Oracle 12c及以上版本支持指定$FINISH\_REDEF\_TABLE$的锁定时间[^5] 3. 重定义前需创建中间表并同步数据[^2] ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值