我在PowerDesigner中有一个相对较大的概念数据模型。 生成物理数据模型并查看DBMS数据类型后,我需要更新每个数据项的所有数据类型(NUMBER / TEXT)。
我想在概念数据模型中进行查找/替换,或者在创建物理数据模型时以某种方式映射到不同的数据类型。防爆。更改文字的自动转换 - > Clob,to Text - > NVARCHAR(20)。
谢谢!
答案 0 :(得分:3)
我不知道'标准'发现&替换,但这将工作相同。你有没有针对你的一个模特运行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
答案 1 :(得分:2)
如果要将所有CLOB更改为NVARCHAR(20),另一种简单的方法是确保您在主物理图上并转到Model->列...然后按数据类型对列表进行排序,突出显示要更改的数据类型的所有列。将您选择的第一个更改为新数据类型,并更改所有突出显示的列
答案 2 :(得分:0)
从头到尾:
打开元模型编辑器并更改您正在使用的DBMS的数据类型的映射。
你可以在Sybase提供的元模型定义文件中使用它,或者你可以“克隆”(另存为...)或扩展它(并保持原始文件不变 - 这是推荐的方式)
我可能更具体(究竟该怎么做),但这篇文章很老了。所以我最好等待问题作者的反馈。