现在看来,第一种和第二种是等价的。我的程序在第一种情况下也出现了
第二种方式下的错误。现在的问题是,为什么会出现永久等待?我中断了自己程序的执行,
用SQL Plus删除刚才连接的用户时,说用户正在连接。

解决方案 »

  1.   

    建表语法通过.
    insert 也通过.
    没有问题
      

  2.   

    SQL Plus删除刚才连接的用户时-->How do you 删除刚才连接的用户?Alter system kill .....?
      

  3.   

    : 应该是你程序的问题导致有死锁情况出现。
    我的程序的逻辑很简单,就是往主键表插入数据之后,再往引用表中插入
    数据。但不知道为什么会导致死锁。我使用Oracle 9i的ODBC驱动时不出现
    这种情况。但使用Oracle 8.1.5.7的ODBC驱动时就出现了。
    -->How do you 删除刚才连接的用户?
    很简单,刚才出错时使用的用户是a,我就
    drop user a cascade
      

  4.   

    你也太厉害了吧,一出现死锁就把用户都给删了?其实只要kill掉那个执行此操作的session就行了。我觉得好像跟是否有外键没有关系,你把外键去掉,然后再执行程序,看看是不是还会出问题?