表A结构:
物品NO 
物品名
...
...
...
...在WEB画面上,把它一览显示出来,每一条前面有CHECKBOX可以勾选现在需要把勾选的多个物品NO传到数据库里,通过查询语句查询出来,如'ABC1234000','ABD1435666','BDE1234236'查询语句类似于这样的:SELECT * FROM 表A WHERE 物品NO IN '传进来的多个物品NO'.
现在的问题是,这个'传进来的多个物品NO'怎么写?我是这么写的,不行:
P_NO (传进来的多个物品NO)SELECT * FROM 表A WHERE 物品NO IN (P_NO)可能ORACLE把它认为是SELECT * FROM 表A WHERE 物品NO IN ("'ABC1234000','ABD1435666','BDE1234236'")即作为一个整体的字符串处理了.

解决方案 »

  1.   

    那你用debug,看你传进去的那个sql语句,看看不就行了
      

  2.   

    如果是jsp可以这样写:sql = "SELECT * FROM 表A WHERE 物品NO IN (" + P_NO + ")"; 
    你最好把具体程序帖出来大家看看,才好帮你解决。
      

  3.   

    在后台打印出sql 放数据库里去执行,看有没有错
      

  4.   

    你这个P_NO是不是存储过程的传入参数啊?
    而传给它的值是"'ABC1234000','ABD1435666','BDE1234236'"?
    那你可以看一下这篇文章
    http://www.bitscn.com/oracle/pl/200604/16887.html
      

  5.   


    将no存储在一个表变量里面,然后用exists(select 1from 表变量 where 条件)
      

  6.   

    String sql="select * from XXX where XXX in("+condition+")";
    condition这里应该为这样的:'1','2','3','4'...这样的组合,
      

  7.   


    最好不要用in,因为in是全表扫描,效率没有exists高!