select 
... 
  nvl2((select * 
                      from ((select * from table(fn_split(t1.cpph_mc, ','))) 
                            minus (select cpph_mc 
                                      from sjgl_hggt_cl_tb 
                                    where facility_id = t2.facility_id 
                                      and year = t2.year 
                                      and month = t2.month))), 
... 
from sjgl_hggt_dedh_tb t1, sjgl_hggt_cl_tb t2 
... 
t1.cpph_mc 是一个类似 a,b,c,d的字符串 
fn_split 函数的功能是将字符串转换为一个数组 
问题是总是错误提示:t1.cpph_mc 是无效的标示符。。 为什么? 急  谢谢!

解决方案 »

  1.   

    oracle 不自带这个函数
    楼主可以创建一个自定义函数来代替
    http://www.knowsky.com/347131.html
      

  2.   

    1,我没有发现你的t1在哪里声明的,所以“总是错误提示:t1.cpph_mc 是无效的标示符”是正常的,楼主是否可以把你的全部sql贴出来呢?2,这种提示错误,绝大部分是t1没有声明所造成的,或者声明的t1的作用范围在报错的地方不起作用。
      

  3.   

    http://topic.csdn.net/u/20091031/12/5d8c5243-d631-4096-9f65-5afaff61a924.html?seed=137053872&r=60834109#r_60834109
    谢谢楼上的关注 我的原帖是上面这个。里面也有所有的代码。请各位大侠在过去看看,十分感谢!问题解决后这里一样给分的。拜托了