解决方案 »

  1.   

    Select DAGUID,DAH,XMMC,AJMC,GDSJ,GDBZ
     from ZL_ARCHIVES t
     where  (DAH like '%''%' or XMMC like '%''%' or AJMC like '%''%' ) 
     and GDBZ='3' 
     and DELSIGN is null
     and exists (
     select 1 from table_name s where s.column1 = t.DAGUID 
     )
      

  2.   


    我拿到的数据就是一个DataTable,一个webservice返回的数据,也不能改。。只能利用现有的这9000多条数据的DataTable,还有救么。。
      

  3.   


    我拿到的数据就是一个DataTable,一个webservice返回的数据,也不能改。。只能利用现有的这9000多条数据的DataTable,还有救么。。
    不用改什么就改这个sql啊
    and exists (
    select 1 from DataTable s where s. DAGUID  = t.DAGUID 
    )
      

  4.   


    我先去服务里面取出来符合要求的数据,然后再做查询操作,取出来之后是一个DataTable,是在程序代码里面操作的。。
      

  5.   

    你可以先把9000 条DAGUID 合成用逗号隔开的字符串,然后以CLOB的方式传递到DB,在DB用函数把CLOB转成内存表,变成类似如下的函数:Select DAGUID,DAH,XMMC,AJMC,GDSJ,GDBZ
     from ZL_ARCHIVES t
     where  (DAH like '%''%' or XMMC like '%''%' or AJMC like '%''%' ) 
     and GDBZ='3' 
     and DAGUID  in (
     select * from table(split (:CLOB))
     )其中split函数可以参考https://community.oracle.com/message/4558212,不过那个帖子的输入参数是varchar2.如果你的数据库版本是oracle 11g的话,可以用xmltable函数替代 table(split())