问题如下:同样一段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 = '深港均可'
列定义含混不清你确定 你的表结构一样?
为什么不把别结构 导出来看看呢
最好是使用哪些列属于哪些表
版本不同这些小的不兼容也还是有的。
改成
produce_info_mx.sample_serial_number like '%012048986%' and
表结构是一样的,我把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 这个错误
不知道这一段怎么就这么重要,没了就报错
版本
DB101--oracle10.2.0.1.0,
DB_test--oracle10.2.0.5.0
这个是不是版本不同而本身存在的BUG