基于Oracle中的CREATETABLE语句生成修改表的升级脚本
在Oracle中,是否可以基于schema中的现有表以及具有较新表定义的CREATE TABLE语句生成一组基于Oracle中的CREATETABLE语句生成修改表的升级脚本,oracle,oracle11g,ddl,oracle11gr2,Oracle,Oracle11g,Ddl,Oracle11gr2,在Oracle中,是否可以基于schema中的现有表以及具有较新表定义的CREATE TABLE语句生成一组ALTER TABLE语句 假设我有一个带有某个应用程序早期版本的模式。我有一个应用程序最新版本的安装脚本。脚本从头开始创建所有表和序列,执行createtable(可能还有createsequence)语句 我希望在不丢失任何数据的情况下(例如,不执行DROP TABLE)将架构更新到应用程序的最新版本 是否可以使用标准Oracle 11gR2或第三方组件?您可以在PLSQL中创建一个过
ALTER TABLE
语句
假设我有一个带有某个应用程序早期版本的模式。我有一个应用程序最新版本的安装脚本。脚本从头开始创建所有表和序列,执行createtable
(可能还有createsequence
)语句
我希望在不丢失任何数据的情况下(例如,不执行DROP TABLE
)将架构更新到应用程序的最新版本
是否可以使用标准Oracle 11gR2或第三方组件?您可以在PLSQL中创建一个过程来:
- 在新数据库中不存在新表时创建新表
- 当表存在时,对其进行更改,并向其提供所有的\u TAB\u列
创建表
@ibre5041是的,它需要Oracle变更管理包。这不是一个选项,因为我必须解析CREATE TABLE语句才能获得缺少的列的列表。通过比较所有的\u TAB\u列,您无法找到缺少的列?如果不先在其他架构上执行我的CREATE TABLE
,我将无法找到缺少的列。这可能会很昂贵,并且由于可能的外键
s约束,无法为每个创建表
单独执行。我必须首先在辅助数据库上运行整个安装脚本,我希望避免此步骤。它看起来正是我所需要的。如果您对如何使用它或如何组织您的源代码有任何疑问,请通过网站的电子邮件与我联系谢谢!CORT看起来非常有前途,通过DDL触发器
s处理修改的想法非常棒。