例如:
   String c='500';
   "select  * from  a  where a.b  not in ( " + c + ")";
   把这个C用 ? 代替  该怎么写sql

解决方案 »

  1.   

    MSSQL中需要动态实现   Oracle中也应该是这样吧
      

  2.   

    这个c是多个逗号分割的字符串还是一个数字? 一个的话 直接用<> 多个的话 就要分割了
    create or replace procedure sel(c in varchar2) is
           p_sql varchar(1000);
           begin 
                p_sql := 'select  * from  a  where a.b <> '''||c||'''';
                --DBMS_OUTPUT.PUT_LINE(p_sql);
               EXECUTE IMMEDIATE (p_sql);
              commit;
           end; 
      

  3.   

    我认为这是一个绑定变量的问题。c可以用不同的值来代理,但这在oracle解析时,确是一个类型的sql语句,仅仅解析一次。放到内存中,是一个软解析的问题。