问题标签 [dbms-redefinition]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
3580 浏览

oracle - ORACLE:在 dbms_redefinition 后删除临时表时出错

我正在研究 Oracle11g,并尝试使用dbms_redefinition重新定义表。它工作正常,但在尝试删除临时表时会引发ORA-02449: unique/primary keys in table referenced by foreign keys错误。

我在 SO 中找到了一个查询来查找参考,

这使

我想这个约束是在重新定义过程中创建的,没关系,但我也希望它必须被同一个过程删除。这是错的吗?我说,这个约束没有被删除是正常行为的一部分吗?

只需删除约束是安全的

不丢失数据?

提前致谢。

-- 编辑 -- 考虑到这一点后,我决定删除约束以删除临时表。

我已经修改了查询以删除指向我要删除的表的其他表的约束,几乎是自动的。

这对我有用,但我必须注意,在我的情况下,查询只抛出一行(只有一个从属表),所以如果你认识某人,必须修改它以通过循环或其他方法删除许多约束。

如果有人能够弄清楚并解释为什么流程本身没有删除该约束(或者这是正常行为),那将是很好的。

0 投票
2 回答
4700 浏览

oracle - Oracle:如何使用 DBMS_REDEFINITION 包重新排序列?

我需要使用DBMS_REDEFINITION包对表中的某些列进行重新排序。我该如何为表格执行此操作,例如

这样重新排序的表将 x 作为第一列?

(上下文:我正在编写一些实用程序,将一些元数据列添加到一些现有的表中,如果元数据列位于前面,这将对所有相关人员很有用,以便在 sql developer 或其他人中拉起它们时可以方便地查看它们表浏览工具。我知道逻辑处理列顺序无关紧要的论点,但这是为了使用现成的工具使表更容易理解。)

0 投票
1 回答
893 浏览

sql - 如何从 DBMS_REDEFINITION 中的(选择 *)代码创建临时表

我想从 DBMS_Redefinition Process 的主表创建临时表。

但要求不是编写完整的创建语法,因为有 n 个表,我不能每次都取每个值。

例如..

在上述语法中,不能每次都给出列名值。所以我所做的是

但是谁能告诉我如何在这个临时表(table_INTER)中引入分区。

0 投票
1 回答
193 浏览

oracle - 使用 DBMS_REDEFINITION 重新定义具有用户定义类型的表

我们开发的应用程序有一个模式,USER1,它有表、类型、包等。

我必须将一些用户定义的类型移动到不同的模式 USER2。USER1 有几个表依赖于这些用户定义的类型。我们重新创建了 USER2 中的类型,但在我删除 USER1 中的类型之前,我们必须删除表对它们的依赖。为此,我正在考虑通过使用 USER2 中的用户定义类型(而不是 USER1)创建中间表来使用DBMS_REDEFINITION

我正在使用以下内容将 USER1 中的用户定义类型转换为在 USER2 中创建的新类型,其中 EMP_LIST 是一个 EMP_TYPE 数组。

但是,我收到以下错误:

错误:ORA-22907:对不是嵌套表或 VARRAY 的类型的无效 CAST

我尝试使用 MULTISET 运算符,但它看起来好像是不允许的。我们怎样才能做到这一点?

0 投票
4 回答
9904 浏览

oracle - DBMS_REDEFINITION.start_redef_table 的权限不足错误

我正在尝试对现有表进行分区而不使用 Oracle 删除和重新创建它。

我的 Oracle 10g 支持应用程序中的 DBMS_REDEFINITION 包

我已经按照 oracle 文档中的说明向用户授予了所有必要的权限。

我能够执行以下程序

但是当我试图跑步时

我收到以下错误:

错误报告:
ORA-01031:权限不足
ORA-06512:在“SYS.DBMS_REDEFINITION”第 50 行
ORA-06512:在“SYS.DBMS_REDEFINITION”第 1343 行
ORA-06512:在第 2 行
01031.00000 -“权限不足”

你能帮我吗,我在这里缺少什么特权?或者是否知道在包 DBMS_REDEFINITION 的第 50 行中执行了哪个操作?

0 投票
1 回答
957 浏览

oracle - ORACLE 的 dbms_redefinition.copy_table_dependents 中的 TMP$$_ 前缀

ORACLE 的 dbms_redefinition.copy_table_dependents 复制索引/触发器/约束并将它们重命名为

是否可以更改字符串 "TMP$$_" ,以便 copy_table_dependents 使用不同的前缀?我知道我可以在之后重命名对象,但我想知道是否可以更改前缀。

0 投票
1 回答
296 浏览

oracle - oracle 中 DBMS_REDEFINITION 包中的空间利用率

我正在尝试在我的应用程序中预先存在的表上创建分区。在这样做的同时,我在架构的默认表空间中面临空间问题。

有人可以解释一下 DBMS_REDEFINITION 包在空间利用率方面是如何工作的。是否需要额外的空间来执行任务。如果是,为什么?它是暂时的吗?完成重新定义后是否释放空间

对此立即发表评论将不胜感激。

0 投票
3 回答
574 浏览

oracle - Oracle:Dbms_Redefinition 是什么意思?

是什么Dbms_Redefinition?Oracle 文档说它是一个为对象重新定义提供接口的包。

我想了解这个“重新定义”到底是什么意思?这种重新定义与 DDL 和 DML 命令有何不同?“在线”是什么意思?

0 投票
1 回答
972 浏览

oracle - dmbs_redefinition 后没有 mviews 的 mlog$_ 对象

我不是 DBA,但希望我能够描述我们当前的问题。

我们有一个相当大的分区表,我们通过dbms_redefinition.start_redef_table(..)etc. 定期重组。我们与数据库中发生的其他事情发生了冲突,因此过去几次失败。但在过去的几个月里,它并没有失败。自从上次失败我们重新组织了每个分区,所以表和所有分区都处于健康状态。由于可能的 mview 更新,我们没有遇到任何性能问题。

mlog$_xxx显然,在其中一次失败之后,一些rupd$_xxx对象开始出现。今天,我们有超过 100 个mlog$_xxx对象和 30 多个rupd$_xxx对象。而且它越来越多。这让我很担心。

以下不起作用:drop materialized view log on xxx; 说明我

ORA-12002 xxx 上没有物化视图日志。

当我这样做时:select * from dba_mviews;......然后我没有得到任何结果

我现在很困惑。我有一张桌子,我有 mview 日志,但我之间没有 mview。

我们将数据库副本复制到测试机器上,我能够删除该表。但mlog$_xxx物体还在。

有人可以帮我清理这个烂摊子吗?

0 投票
0 回答
108 浏览

oracle - 由于重新定义,Oracle 选择失败

我在 session1 中有一个 plsql 代码,它使用 dbms_redefinition 进行重新定义。

另一个在原始表上运行选择查询的会话在重新定义的完成过程调用时失败.. 除了不再存在之外。

这个包的目标不是允许在仍然可以访问表的人期间进行在线重新定义吗???