Создание DDL для таблиц и индексов Sybase

Я ищу инструмент командной строки для создания DDL для таблиц и индексов (ничего более сложного не требуется) для некоторых таблиц Sybase в базах данных, о которых я забочусь. У меня есть доступ к инструментам с графическим интерфейсом для просмотра отдельных DDL, и я мог бы вырезать и вставлять их, но я хотел бы что-то, что просматривало бы все таблицы в базе данных и генерировало несколько хороших текстовых файлов, которые я мог бы проверить в CVS.

Я попытался использовать инструмент под названием ddlgen, предоставленный Sybase, но он просто выдавал такие исключения:

bash-3.00# ./ddlgen -SdatabaseServer:4100 -Uusername -PsecretPassword -TDB -NdatabaseName 
U64: null: databaseName.dbo.firstTable
U64: null: databaseName.dbo.firstTable
        at com.sybase.ddlgen.container.UserTableContainer.getDependentDDL(UserTableContainer.java:1065)
        at com.sybase.ddlgen.container.UserTableContainer.open(UserTableContainer.java:1364)
        at com.sybase.ddlgen.container.UserTableMetaContainer.open(UserTableMetaContainer.java:94)
        at com.sybase.ddlgen.container.DDLBaseContainer.load(DDLBaseContainer.java:76)
        at com.sybase.ddlgen.container.DatabaseContainer.addChildren(DatabaseContainer.java:552)
        at com.sybase.ddlgen.container.DatabaseContainer.open(DatabaseContainer.java:104)
        at com.sybase.ddlgen.container.DatabaseMetaContainer.open(DatabaseMetaContainer.java:114)
        at com.sybase.ddlgen.DDLThread.run(DDLThread.java:89)

что было не очень полезно. Я продолжаю думать, что должен быть хороший способ Perlish сделать это, но я не знаю, что это будет.


person Community    schedule 27.01.2009    source источник


Ответы (5)


Вы также можете использовать файл dbschema.pl на основе Perl.

http://www.isug.com/Sybase_FAQ/ASE/section9.html#9.3.2

person Paul Harrington    schedule 28.05.2009
comment
Ссылка в FAQ ISUG больше не работает, но здесь есть копия dbschema 2.4.2: peppler.org/downloads/dbschema-2_4_2.zip - person martin clayton; 14.01.2010

используйте команду ниже, чтобы получить определение

defncopy -P tester1 -S sqppdb2 -U pmestr -D ppdb2 -o tab4 ppdb2..tab4

Спасибо

person user76800    schedule 11.03.2009
comment
Эта ссылка просто спам-сайт, не так ли? Я не видел никакого контента, относящегося к вопросу. - person polyglot; 13.10.2009

Загрузите ознакомительную версию Embarcadero DBArtisan и используйте функцию извлечения для получения DDL.

Вы можете включить ведение журнала в DBArtisan (Logfile -> Log SQL), а затем посмотреть, какой SQL он отправляет в Sybase для получения таблицы DDL. Скопируйте и вставьте SQL в файл журнала в сценарий, который вы запускаете из командной строки и который может работать.

Заранее приносим извинения, если вы не используете Windows... DBArtisan предназначен только для Windows.

person Michael Sharek    schedule 27.01.2009

Другой способ сделать это — использовать MyGeneration генератор кода (подобный CodeSmith, но с открытым исходным кодом), который использует шаблоны для создания кода. Этот код может быть чем угодно — Sql, C# и т. д. Я использую Sql Server, и я использовал некоторые из свободно доступных шаблонов для создания DDL, как вы укажете, а также автоматически создает файлы сопоставления NHibernate — блестяще.

person MrTelly    schedule 28.01.2009

ddlgen даст вам то, что вам нужно, и работает очень хорошо. У вас, кажется, проблема с окружающей средой с Java. Попробуйте еще раз и опубликуйте ошибку, которая у вас есть, полностью.

person Vincent    schedule 15.02.2009