你commit后,再
desc gmgh;看看结果。

解决方案 »

  1.   

    where accountnum in (select accountnum from gmgh where subsidiaryid=1);这个条件永远是真的呀。 
    相当于 Delete from country_Business_servicecode where  1=1 
    不删才奇怪呢。
      

  2.   

    14:09:11 SQL> select accountnum from gmgh where subsidiaryid=1;
    select accountnum from gmgh where subsidiaryid=1
           *
    ERROR 位于第 1 行:
    ORA-00904: invalid column name
    已用时间:  00: 00: 00.00
    15:02:04 SQL> 
    报错的呀,怎么会是永真的呢?
      

  3.   

    我个人认为 :
    where accountnum in (select accountnum from gmgh where subsidiaryid=1);中
    accountnum 相当于常量, 第二个accoutnum 也就是个常量了。
    那上面的Delete 执行,一行的做时,这个accoutnum 就是取出来的值了,假如是 5
    那上面的Delete 相当于 :
    delete from country_bussiness_serverice where 5 in (select 5 from gmgh)select 5 from gmgh 得到的结果肯定有 5 了, 只要 ghgh 不为空。
    哈哈, 所以说永真!!!哥们是不是这样?
      

  4.   

    SQL> desc country_business_servicecode
     名称                                           
     -----------------------------------------------
     EXCHANGENO                                     
     HUNDRUD                                        
     SERVICEID                                      
     ACCOUNTNUM                                     表country_business_servicecode中有accountnum这个字段啊,而且
    每行的值都不同的,怎么会相当于常量了呢?