我是perl的新手,正在尝试列出昨天创建的所有oracle schema表,即(sysdate - 1)
试图通过perl脚本实现上述功能,并在oracle数据库上运行。
例如:
select schema, table_name, created
from dba_objects
where created = sysdate - 1
and object_type = 'TABLE';发布于 2013-01-15 02:45:53
根据定义,Oracle中的date既包括日期部分,也包括到第二天的时间。即使您的会话的NLS_DATE_FORMAT仅指定要显示日期组件,时间仍然存在。时间几乎肯定会导致您的查询不返回任何行。sysdate - 1恰好在24小时前返回。因此,如果今天是2013年1月14日13:41:35,sysdate - 1将于2013年1月13日13:41:35返回。您的查询将只返回恰好在那一秒创建的表。
trunc(sysdate)今天午夜返回,trunc(sysdate - 1)昨天午夜返回。因此,最有可能的情况是,您想要类似于
SELECT owner, object_name
FROM dba_objects
WHERE created >= trunc(sysdate - 1)
AND created < trunc(sysdate)
AND object_type = 'TABLE'因为dba_objects没有schema或table_name列,所以我假设您指的是owner和object_name。
https://stackoverflow.com/questions/14324457
复制相似问题