我们正在使用Sybase
数据库。我们在Windows 7计算机上使用Sybase ASE 15.5
版本,我们创建了一个使用jdbc:Sybase
与com.sybase.jdbc4.jdbc.SybDataSource
连接的示例Java程序。我们能够在sybase数据库上连接并运行查询。
我们的要求是generate DDL statements
:create table scripts
,indexes
,stored procedure
,triggers
,synonyms
,functions
等。我们想在所有数据库对象上生成SQL script
。
我们尝试使用sysobjects
和syscolumns
根据建议提取here,但只生成来自SELECT * FROM sysobjects WHERE type = 'U'
的表名用户表和系统表。
使用schemaspy工具研究reverse engineer sybase,该工具可视化表/视图之间的关系。但是没有用,我们需要有ddl命令的脚本。
在探索更多发现ddlgen提取各种DDL语句(表,索引等)时,如何使用ddlgen在我的java程序中提取这些语句?
或者是否有任何其他解决方案可以帮助我们提取sybase数据库的ddl,就像oracle我们使用metaModel.getDDL()的情况一样?
答案 0 :(得分:1)
我相信你可以从syscomments和sysobjects中检索一些ddl。
来自文件:
syscomments包含每个视图,规则,默认值,触发器的条目, 表约束,分区,过程,计算列, 基于函数的索引键和其他形式的编译对象。该 text列包含原始定义语句。如果是文字 列长度超过255个字节,条目跨越行。每个对象 可以占用多达65,025行
SELECT so.name, sc.text
FROM syscomments sc, sysobjects so
WHERE sc.id = so.id
AND sc.texttype = 1 --1 for user defined objects/0 for system objects
ORDER BY so.name
显然这并不完全,但它应该让你非常接近。或者,您需要使用java程序来调用命令行ddlgen
实用程序。
我目前没有安装ASE,所以如果代码不对,我会道歉。