2

我有一个父表(ParentId)和一个子表(ParentId,ChildId)。父表中的 ParentId 定义为 VARCHAR2(25 个字符),子表中的 ParentId 也是如此。我想将数据类型更改为 VARCHAR2(50 个字符)。我可以以这种方式将这种更改级联到 Child 表吗?

干杯!

4

1 回答 1

2

不,没有办法级联更改。(好吧,如果您基于相同的用户定义类型定义列,则可能会有一些晦涩难懂的方式,但这无疑会产生比它解决的问题更多的问题)。您需要ALTER为父表和子表发出一个。

如果您有一个更复杂的模式,您试图通过许多子表和孙表跟踪父表的更改,您可以使用数据字典来遍历层次结构。这是一个基于 Frank Kulash 的OTN 论坛帖子之一返回表层次结构的查询。如果列在每个表中的名称都相同,您可以做一些更简单的事情,只需查询具有该名称且 a为 25 而不是 50 的所有列。dba_tab_columnsdata_length

于 2013-08-01T17:44:39.500 回答