我的任务是将两个oracle模式与大量表进行比较,以找出模式中的结构差异。直到知道我在Oracle SQL Developer中使用了DB Diff工具,并且它运行良好。问题是现在我需要比较用户无法登录的表,但我可以通过SQL开发人员的其他用户部分看到它。问题是,每当我尝试使用diff工具将这些对象与其他模式进行比较时,它就不起作用。有谁知道怎么做?这将为我节省大量的工作。如果需要的话,我有一些基本的SQL知识。感谢。
答案 0 :(得分:2)
如果您已在该其他架构中获得GRANTed权限,请发出
alter session set current_schema = OTHER_SCHEMA_NO_QUOTES_REQUIRED;
运行任何工具。
否则,它是select * from all_tables where owner = OTHER_USER;
,'从all_indexes中选择* ......等等。
答案 1 :(得分:0)
用正确的答案重新回答这个问题。
如果您可以让DBA通过您授权代理,您可以在不知道最终架构密码的情况下执行以下操作:
ALTER USER {use you do not have pw to - lets call it ENDSCHEMA} GRANT CONNECT THROUGH {user you have pw for - lets call it YOURSCHEMA};
然后在SQL Developer中创建一个连接:
username: YOURSCHEMA[ENDSCHEMA]
password: YOURSCHEMA password
然后,您可以继续并在两个模式上执行Database Diff,并且永远不知道ENDSCHEMA的密码。