测试环境一段sql,无法跑出结果,在生产环境同样的sql,秒出,后来发现select后面的自定义函数对应的包失效,尝试重新编译包,无法编译。找到锁住的包的会话,全部杀掉,重新编译。

SELECT 'alter system kill session ' || '''' || sid || ',' || serial# || '''immediate;', a.*  

 FROM dba_ddl_locks a, v$session ss  

WHERE a.name LIKE '%包名%'    AND a.session_id = ss.sid;