问题如下:同样一段sql在DB101和DB_test这两个数据库(表结构一样,只是版本有不同,
DB101--oracle10.2.0.1.0,DB_test--oracle10.2.0.5.0)中执行,
DB101可以执行,没问题,DB_test报ORA-00918: column ambiguously defined,
表produce_info_mx,sample_manager_mx都含此字段sample_serial_number ,
两个数据库应该都报column ambiguously defined这个错误,怎么一个可以执行,另一个又不可以
sql如下:
select produce_info_mx.*,
                       produce_info.produce_name,
                       produce_info.produce_type,
                       item_info_mx.item_mx_name,
                       item_info_mx.item_mx_code
                  from produce_info_mx
                 inner join produce_info on produce_info_mx.produce_id =
                                            produce_info.produce_id
                 inner join item_info_mx on item_info_mx.item_mx_id =
                                            produce_info.item_id
                 inner join sample_manager_mx on sample_manager_mx.sample_mx_id =
                                                 produce_info_mx.produce_sample_id
                                             and produce_info_mx.produce_fact_lib_num <
                                                 produce_info_mx.produce_library_number
                                             and produce_info.PRODUCE_LIB_FLAG =
                                                 'DNA小片段'
                                             and (sample_manager_mx.CLONE_FLAG is null or
                                                 sample_manager_mx.CLONE_FLAG != 3)
                                             and produce_info.produce_auditing = 1
                                             and produce_info.produce_flag = 1
                                             and produce_info.produce_excute_flag = 2
                 where (produce_exp_fl = '未导出' and
                       sample_serial_number like '%012048986%' and
                       (fact_build_lib_area = '深圳' or
                       fact_build_lib_area = '深港均可'

解决方案 »

  1.   

    column ambiguously defined
    列定义含混不清你确定 你的表结构一样?
    为什么不把别结构 导出来看看呢 
      

  2.   

    这个是bug吧
    最好是使用哪些列属于哪些表
      

  3.   

    db_test是什么版本?
    版本不同这些小的不兼容也还是有的。
    改成
    produce_info_mx.sample_serial_number like '%012048986%' and
      

  4.   


    表结构是一样的,我把sql缩成下面这样
                select produce_info_mx.produce_id
                  from produce_info_mx
                 inner join produce_info on produce_info_mx.produce_id =
                                            produce_info.produce_id
                 inner join sample_manager_mx on sample_manager_mx.sample_mx_id =
                                                 produce_info_mx.produce_sample_id
                 where sample_serial_number like '%012048986%'当我把"inner join produce_info on produce_info_mx.produce_id =
                                            produce_info.produce_id"     
    这一段删除时,DB101也会报  column ambiguously defined 这个错误 
    不知道这一段怎么就这么重要,没了就报错
      

  5.   


    版本
    DB101--oracle10.2.0.1.0,
    DB_test--oracle10.2.0.5.0
    这个是不是版本不同而本身存在的BUG