【问题标题】:Generating DDLs for Sybase tables and indexes为 Sybase 表和索引生成 DDL
【发布时间】:2009-01-27 20:52:55
【问题描述】:

我正在寻找一个命令行工具来为我负责的数据库中的一些 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 方法可以做到这一点,但我不知道那会是什么。

【问题讨论】:

    标签: database sybase ddl operations


    【解决方案1】:

    您也可以使用基于 Perl 的 dbschema.pl

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

    【讨论】:

    【解决方案2】:

    使用以下命令获取定义

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

    谢谢

    【讨论】:

    • 那个链接只是一个垃圾网站,不是吗?我没有看到任何与该问题相关的内容。
    【解决方案3】:

    下载Embarcadero DBArtisan 的评估版并使用其提取功能提取 DDL。

    您可以在 DBArtisan (Logfile ->Log SQL) 中打开 Logging,然后查看它发送到 Sybase 以获取表 DDL 的 SQL。将日志文件中的 SQL 复制并粘贴到您从命令行运行的脚本中,这可能会起作用。

    如果您不使用 Windows,请提前致歉...DBArtisan 仅适用于 Windows。

    【讨论】:

      【解决方案4】:

      另一种方法是MyGeneration 一个代码生成器(类似于 CodeSmith,但开源),它使用模板来创建代码。该代码可以是您喜欢的任何代码 - Sql、C# 等。我使用 Sql Server,并使用一些免费提供的模板来创建您指定的 DDL,并自动创建 NHibernate 映射文件 - 太棒了。

      【讨论】:

        【解决方案5】:

        ddlgen 会给你你需要的东西,而且效果很好。您似乎遇到了 Java 的环境问题。重试并完整发布您遇到的错误。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2012-08-28
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多