1

私が管理しているデータベース内の一部のSybaseテーブルのテーブルとインデックスの両方(これ以上複雑なものは必要ありません)のDDLを生成するコマンドラインツールを探しています。個々のDDLを表示するためのGUIツールにアクセスでき、それらを切り取って貼り付けることもできますが、データベース内のすべてのテーブルを調べて、CVSにチェックインできる素敵なテキストファイルを生成するものが必要です。

Sybaseから提供された、というツールを使用してみましたddlgenが、次のような例外が発生しました。

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の方法があるに違いないと考え続けていますが、それがどうなるかはわかりません。

4

5 に答える 5

1

以下のコマンドを使用して定義を取得します

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

ありがとう

于 2009-03-11T17:46:56.837 に答える
0

Embarcadero DBArtisanの評価版をダウンロードし、その抽出機能を使用してDDLを取得します。

DBArtisanで[ログ]をオンにして([ログファイル]-> [SQLのログ])、テーブルDDLを取得するためにSybaseに送信するSQLを確認できます。ログファイルのSQLをコピーして、コマンドラインから実行するスクリプトに貼り付けます。このスクリプトは機能する可能性があります。

Windowsを使用していない場合は事前にお詫びします...DBArtisanはWindowsのみです。

于 2009-01-27T21:25:44.160 に答える
0

ddlgen は、必要なものを提供し、非常にうまく機能します。Java の環境に問題があるようです。もう一度やり直して、エラー全体を投稿してください。

于 2009-02-15T20:00:30.163 に答える
0

これを行うもう 1 つの方法は、テンプレートを使用してコードを作成するコード ジェネレーター (CodeSmith に似ていますが、オープン ソース) である MyGeneration ですそのコードは、Sql、C# など、好きなものでかまいません。私は Sql Server を使用し、自由に利用できるテンプレートをいくつか使用して、指定どおりに DDL を作成し、NHibernate マッピング ファイルも自動的に作成しました。

于 2009-01-28T10:27:13.457 に答える