Sql 将Oracle时间戳更新为当前日期
我在Oracle db中有一个时间戳(6)字段。此字段的值的格式为Sql 将Oracle时间戳更新为当前日期,sql,oracle,timestamp,sql-update,Sql,Oracle,Timestamp,Sql Update,我在Oracle db中有一个时间戳(6)字段。此字段的值的格式为 DD/MM/YYYY HH:MM:SS.000000000 PM 如何将此值更新为当前时间戳 [类似问题的链接:] 我遵循了这个链接,但下面的查询需要很长时间才能执行 update table_name set start_time = to_char(to_date(start_time, 'yyyy/mm/dd-hh:mi:ss:ff3'), '2012/10/10-19:30:00:00') where column='
DD/MM/YYYY HH:MM:SS.000000000 PM
如何将此值更新为当前时间戳
[类似问题的链接:]
我遵循了这个链接,但下面的查询需要很长时间才能执行
update table_name set start_time = to_char(to_date(start_time, 'yyyy/mm/dd-hh:mi:ss:ff3'), '2012/10/10-19:30:00:00') where column='Q'
A是一个时间点,它没有格式。要将此字段更新为当前时间戳,请使用或(分别是服务器的日期/时间和会话的日期/时间):
如果查询花费了异常的时间(比具有相同WHERE子句的可比SELECT长得多),最可能的原因是:
update table_name
set start_date = systimestamp
where column='Q'
如果您怀疑表上有锁,则需要检查一些表:
dba_锁
、v$session
、v$session_拦截器
等。当用户在没有提交
或回滚的情况下意外地更新
阻止某个内容时,这些拦截器非常有用,但您应该能够看到是否存在阻止应用程序体系结构锁定的can。您应该在纸上模拟所有场景。令人惊讶的是,此命令从未返回。起初我认为这是Sql开发人员的问题。所以我尝试使用sqlplus命令行。它的行为相同。有什么线索吗?@sandyr commit/rollback或kill在此表的行上有锁的所有会话。如果列='Q'
中有几行,则@VincentMalgrat是对的,这些行上有锁。如果表非常大,并且行数相当大,您应该等待。Oracle必须在磁盘上写入数据。这不是偶然发生的。一个程序轮询表不断地寻找要处理的记录。我认为这个程序锁定了整个表。哪个系统表在执行行级锁定或表锁定时存储信息?有一些表:dba_锁、v$session、v$session_拦截器等。
update table_name
set start_date = systimestamp
where column='Q'