jdbcTemplate.execute("alter table UKIADATA rename to UKIADATA_temp");
jdbcTemplate.execute("alter table UKIADATA_2 rename to UKIADATA");
jdbcTemplate.execute("alter table UKIADATA_temp rename to UKIADATA_2");
logger.info("Tables swapped.");我收到错误SQL alter table UKIADATA重命名为UKIADATA_temp;ORA-00054:指定了NOWAIT或超时过期的资源忙和获取;嵌套异常是java.sql.SQLException: ORA-00054:指定了NOWAIT或超时过期的资源忙和获取,
除此之外,您可以帮助我如何在这段代码中插入提交语句。
发布于 2017-10-05 11:30:39
此时,您正在尝试重命名的表正被另一个会话占用(读取、插入数据、更新、删除)。为了使您的请求运行时不出现此错误,您必须关闭其他会话或停止访问此表。DDL操作不需要修复,它们只需要修复insert、update、delete命令。任何DDL命令也会在开始工作之前提交数据。此SQL将确定哪些会话正在阻塞该表。下面的SQL语句将强制终止这些会话。
select s.sid, s.serial#
from v$locked_object l, dba_objects o, v$session s
where o.object_name in('UKIADATA','UKIADATA_2') and
l.object_id = o.object_id and l.session_id = s.sid
alter system kill session 'sid,serial#'https://stackoverflow.com/questions/46577299
复制相似问题