暂无图片
SYS.AUD$表中TIMESTAMP#与NTIMESTAMP#问题
我来答
分享
Walker
2023-04-19
SYS.AUD$表中TIMESTAMP#与NTIMESTAMP#问题

启用了审计但是SYS.AUD$表中TIMESTAMP#列是空的,请问是什么问题?

NTIMESTAMP#列记录的UTC时间能改成本地时间吗,谢谢~

我来答
添加附件
收藏
分享
问题补充
1条回答
默认
最新
刘贵宾

如果启用了审计但是在SYS.AUD$表中TIMESTAMP#列是空的,可能是因为你没有正确地配置审计参数或者审计过程中发生了一些错误。可以检查以下几个方面:

  1. 确认审计参数是否正确设置:检查审计参数是否已经正确启用并配置,例如 AUDIT_TRAIL 参数的值是否为 DB 或者 XML。可以通过查询 V$PARAMETER 视图或者使用 SQL*Plus 的 SHOW PARAMETERS 命令来确认这些设置。

  2. 检查审计文件是否存在:如果审计文件不存在或者没有正确写入审计信息,那么 TIMESTAMP# 列可能会为空。可以通过检查 audit_file_dest 参数指定的目录是否存在审计文件来确认这一点。

  3. 检查操作是否被过滤:如果你设置了过滤条件,那么 TIMESTAMP# 列可能为空。可以通过查询审计策略和过滤条件来确认这一点。


第二个问题,NTIMESTAMP# 列记录的是UTC时间,无法直接转换为本地时间。不过可以通过使用函数 FROM_TZ 和 AT TIME ZONE 来将其转换为本地时间。例如,如果你想将 NTIMESTAMP# 列转换为当前数据库服务器的本地时间,可以使用以下语句:

SELECT FROM_TZ(CAST(NTIMESTAMP# AS TIMESTAMP), 'UTC') AT TIME ZONE DBTIMEZONE FROM SYS.AUD$;

这将返回一个包含本地时间的结果集。可以将 'UTC' 替换为其他时区的值来将时间转换为其他时区的本地时间。

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏