Sybase PowerDesigner Изменяет многие (Найти/Заменить/Преобразовать) типы данных элемента данных

У меня есть относительно большая концептуальная модель данных в PowerDesigner. После создания физической модели данных и просмотра типов данных СУБД мне нужно обновить все типы данных (ЧИСЛО/ТЕКСТ) для каждого элемента данных.

Я хотел бы либо выполнить поиск/замену в концептуальной модели данных, либо каким-то образом сопоставить различные типы данных при создании физической модели данных. Бывший. Измените автоматическое преобразование Text -> Clob на Text -> NVARCHAR(20).

Спасибо!


person whitespy9    schedule 07.06.2010    source источник
comment
Вы можете рассмотреть возможность использования доменов в следующий раз, когда вам нужно будет выполнить такую ​​глобальную замену...   -  person pascal    schedule 16.07.2010


Ответы (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
person Calvin Allen    schedule 08.06.2010
comment
Нет, я еще не запускал VBScript для модели, но это именно то, что я искал. Однако... Я только что зарегистрировал продукт как версию для разработчиков и больше не могу создавать концептуальные модели, и мне осталась моя физическая модель. В Физической модели нет MDL.Entities и я не вижу ничего подобного. Мысли? Объект не поддерживает это свойство или метод: «mdl.Entities» (0x800A01B6) в строке 3 - person whitespy9; 10.06.2010

Если вы хотите изменить все CLOB на NVARCHAR(20), другой простой способ сделать это — убедиться, что вы находитесь на основной физической диаграмме и перейти в Model-> Columns... затем отсортируйте список по типу данных, выделите все столбцы. с типом данных, который вы хотите изменить. Измените первый в вашем выборе на новый тип данных, и все выделенные столбцы будут изменены.

person user1904240    schedule 17.12.2012

Из головы:

Откройте редактор метамодели и измените сопоставление типов данных для используемой СУБД.

Вы можете сделать это в файле определения метамодели, предоставленном Sybase, или вы можете "клонировать" (сохранить как...) или расширить его (и оставить исходный файл без изменений - что является рекомендуемым способом)

Я мог бы быть более конкретным (как именно это сделать), однако этот пост довольно старый. Так что лучше дождусь отзыва от автора вопроса.

person knb    schedule 07.11.2010