提取 Sybase 数据库的 DDL 语句
To extract DDL statements of a Sybase database
我们正在使用 Sybase
数据库。我们在 Windows 7 机器上使用 Sybase ASE 15.5
版本,我们创建了一个示例 java 程序,它使用 jdbc 连接 Sybase
:com.sybase.jdbc4.jdbc.SybDataSource
。我们能够连接并 运行 查询 sybase 数据库。
我们的要求是 generate DDL statements
: create table scripts
, indexes
, stored procedure
, triggers
, synonyms
, functions
等。我们想在所有数据库对象上生成 SQL script
。
我们已尝试根据建议使用 sysobjects
和 syscolumns
提取 here,但这只会生成 table 名称用户 table 和系统 tables 来自:SELECT * FROM sysobjects WHERE type = 'U'
.
使用可视化 tables/views 之间关系的 schemaspy 工具研究 reverse engineer sybase。但是那没有用,我们需要有 ddl 命令的脚本。
探索更多发现 ddlgen 提取各种 DDL 语句(tables、索引等),我如何在我的 java 程序中提取这些语句使用ddlgen?
或者是否有任何其他解决方案可以帮助我们提取 sybase 数据库的 ddl,就像我们使用 metaModel.getDDL() 获得的 oracle 一样?
我相信您可以从 syscomments 和 sysobjects 中检索一些 ddl。
来自文档:
syscomments contains entries for each view, rule, default, trigger,
table constraint, partition, procedure, computed column,
function-based index key, and other forms of compiled objects. The
text column contains the original definition statements. If the text
column is longer than 255 bytes, the entries span rows. Each object
can occupy as many as 65,025 rows
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,所以如果代码不太正确,我深表歉意。
我们正在使用 Sybase
数据库。我们在 Windows 7 机器上使用 Sybase ASE 15.5
版本,我们创建了一个示例 java 程序,它使用 jdbc 连接 Sybase
:com.sybase.jdbc4.jdbc.SybDataSource
。我们能够连接并 运行 查询 sybase 数据库。
我们的要求是 generate DDL statements
: create table scripts
, indexes
, stored procedure
, triggers
, synonyms
, functions
等。我们想在所有数据库对象上生成 SQL script
。
我们已尝试根据建议使用 sysobjects
和 syscolumns
提取 here,但这只会生成 table 名称用户 table 和系统 tables 来自:SELECT * FROM sysobjects WHERE type = 'U'
.
使用可视化 tables/views 之间关系的 schemaspy 工具研究 reverse engineer sybase。但是那没有用,我们需要有 ddl 命令的脚本。
探索更多发现 ddlgen 提取各种 DDL 语句(tables、索引等),我如何在我的 java 程序中提取这些语句使用ddlgen?
或者是否有任何其他解决方案可以帮助我们提取 sybase 数据库的 ddl,就像我们使用 metaModel.getDDL() 获得的 oracle 一样?
我相信您可以从 syscomments 和 sysobjects 中检索一些 ddl。
来自文档:
syscomments contains entries for each view, rule, default, trigger, table constraint, partition, procedure, computed column, function-based index key, and other forms of compiled objects. The text column contains the original definition statements. If the text column is longer than 255 bytes, the entries span rows. Each object can occupy as many as 65,025 rows
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,所以如果代码不太正确,我深表歉意。