我正在尝试创建一个将为给定架构导出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'之外的新架构?'
答案 0 :(得分:0)
SAP / Sybase ASE不使用架构的Oracle / Microsoft实现。
您可以加入sysobjects
和sysusers
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]"