问题详细: 用OracleCommand的ExecuteNonQuery()方法执行一条update语句,把要执行的update语句放到PL/SQL里执行成功,但当在页面执行的时候,页面卡住,执行调试发现时ExecuteNonQuery()一直在执行, 没有报异常,检查原因发现数据库连接,sql语句均没有问题,怎么回事?
原因:问题在于在PL/SQL里执行的那条update语句,PL/SQL默认在窗口里执行的update语句是一个事务,只有关闭执行sql的窗口后,才会commit,或者显式commit,所以
当一直打开这个窗口有没有显式commit时,数据库锁定了要update的那个表,而程序里执行的那条命令一直在等待这张表解锁;简单来说,就是发生了死锁.
感谢同事小谢!