我在 PowerDesigner 中有一个相对较大的概念数据模型。生成物理数据模型并查看 DBMS 数据类型后,我需要更新每个数据项的所有数据类型(NUMBER/TEXT)。
我想在概念数据模型中进行查找/替换,或者在创建物理数据模型时以某种方式映射到不同的数据类型。前任。将 Text -> Clob 的自动转换更改为 Text -> NVARCHAR(20)。
谢谢!
我在 PowerDesigner 中有一个相对较大的概念数据模型。生成物理数据模型并查看 DBMS 数据类型后,我需要更新每个数据项的所有数据类型(NUMBER/TEXT)。
我想在概念数据模型中进行查找/替换,或者在创建物理数据模型时以某种方式映射到不同的数据类型。前任。将 Text -> Clob 的自动转换更改为 Text -> NVARCHAR(20)。
谢谢!
我不知道“标准”查找和替换,但这将是一样的。您是否曾经针对您的一个模型运行过 VBScript?如果没有,请告诉我,但如果是这样,请尝试以下方法之一:
对于概念模型:
Set mdl=ActiveModel
FOR EACH TAB IN MDL.Entities
IF (not tab.isShortcut) THEN
FOR EACH COL IN TAB.ATTRIBUTES
IF COL.DATATYPE = "TXT" THEN
COL.DATATYPE = "VA20"
END IF
NEXT
END IF
NEXT
基本上,它会查看所有实体的所有属性,如果数据类型是“TXT”(文本),它会将其更改为“VA20”(变量字符(20))。
对于物理模型:
Set mdl=ActiveModel
FOR EACH TAB IN MDL.Tables
IF (not tab.isShortcut) THEN
FOR EACH COL IN TAB.COLUMNS
IF COL.DATATYPE = "TEXT" THEN
COL.DATATYPE = "NVARCHAR(20)"
END IF
NEXT
END IF
NEXT
如果要将所有 CLOB 更改为 NVARCHAR(20),另一种简单的方法是确保您位于主物理图上并转到 Model-> Columns... 然后按数据类型对列表进行排序,突出显示所有列使用您要更改的数据类型。将选择中的第一个更改为新的数据类型,所有突出显示的列都将更改
从我的头顶:
打开元模型编辑器并更改您正在使用的 DBMS 的数据类型映射。
您可以在 Sybase 提供的元模型定义文件中执行此操作,或者您可以“克隆”(另存为...)或扩展它(并保持原始文件不变——这是推荐的方式)
我可以更具体(确切地说是如何做到这一点),但是这篇文章已经很老了。所以我最好等待问题作者的反馈。