如何在SYBASE ASE 15.5中获取已授予对象的ddl?

时间:2016-01-11 06:35:32

标签: java oracle command sybase-ase

我正在尝试创建一个将为给定架构导出ddl的应用程序。

我使用ddlgen命令在java中创建了示例。其中,我可以为所记录的模式获取所有对象的ddl。 命令是:

java -cp "C:/Users/admin/Desktop/lib/jconn4.jar;C:/Users/admin/Desktop/lib/dsparser.jar;C:/Users/admin/Desktop/lib/DDLGen.jar" com.sybase.ddlgen.DDLGenerator -Usybase1 -Psybase1 -Sserver-name  -Ddatbase1  -Ooutput.sql

在上面的命令中我需要给出UserName和Password。

现在我有另外一个用户sybase2,他是一名受助者,sybase1用户授予所有对象访问sybase2用户的权限。在这里,我想从sybase2用户的帐户获取sybase1用户的ddl。

我在oracle中做过同样的事情,我们有两个用户user1和user2。 user1授予访问user2的所有对象的所有权限。 我可以成功获取所有授权对象的列表。

查询: -

select object_name from dba_objects where owner = 'user1';  

之后使用 get_ddl 函数,我得到了所有对象的ddl。

上面的ddlgen方法,我没有找到传递模式名称的方法,我想得到ddl。

ddlgen不支持这个吗? 如果没有,那么请建议我们获取给定模式的ddl的其他方法。

我们也没有找到'如何创建除'dbo'之外的新架构?'

1 个答案:

答案 0 :(得分:0)

SAP / Sybase ASE不使用架构的Oracle / Microsoft实现。

您可以加入sysobjectssysusers

来查找数据库对象的所有者
SELECT db_name()
     , su.name
     , so.type
     , so.name
 FROM sysusers su, sysobjects so
WHERE su.uid = so.uid
 AND su.name = "[name of user you are looking for]"