我有两个相同的Oracle表(Table1和Table2)。在这两个表中插入数据都会被截断,然后再加载。一旦将数据插入到表中,就会对其应用同义词。还可以使用以下命令找到要为下一个load插入的表
SELECT OBJECT_NAME
INTO var1
FROM (SELECT RR.OBJECT_NAME,
RANK () OVER (ORDER BY RR.LAST_DDL_TIME ASC) RNK
FROM SYS.ALL_OBJECTS RR
WHERE RR.OBJECT_NAME IN
('Table1', 'Table2'))
WHERE RNK = 1;但是,我需要一种替代技术,因为如果我们向任何用户授予访问角色,这两个表的DDL_TIME将变得相同。请注意,我们不能更改表结构
发布于 2015-09-15 18:49:07
这篇评论太长了。
您的应用程序设计很差。您正在将数据库元数据用于非预期用途。如果需要跟踪诸如授予用户对表的访问权的时间之类的信息,则应该将此信息显式地保留在另一个表中,或者将访问控制逻辑包装在存储过程中,或者使用DDL触发器。
你有问题的一个迹象是DDL_TIME没有做你想要的事情。此列正在执行文档中所述的操作,也可能是数据库需要它执行的操作。缺点是你对它的重新解释。
https://stackoverflow.com/questions/32583461
复制相似问题