直接将存储过程进行调试看看,可能是(数据表)里面存在null值导致的

解决方案 »

  1.   

    --日期格式应该是单引号
    ''yyyy-mm-dd hh24:mi:ss''
      

  2.   

    还是这里:
    to_date(orderdate,''yyyy-mm-dd hh24:mi:ss'')-to_date(checkdate,''yyyy-mm-dd hh24:mi:ss'')
    你的orderdate是date类型吗?如果是为什么还要进行to_date,如果不是如楼上所说直接单引号
      

  3.   

    是不是你传参时 in_condition 没写正确
      

  4.   

    字符转日期要to_date,where后的条件注意左右两端的类型要相同,尽量不要用隐含转换
      

  5.   

    在引号内做单引号,要写重复
    都是字符串 类型啊  用的两个单引号  别的地方也这样用过 应该没问题
    请验证5楼的
    对,可以看下传入参数师in_condition是不是错了?
      

  6.   

    在引号内做单引号,要写重复
    都是字符串 类型啊  用的两个单引号  别的地方也这样用过 应该没问题
    请验证5楼的看哪里 java那边?具体说下  不太懂
      

  7.   

    在引号内做单引号,要写重复
    都是字符串 类型啊  用的两个单引号  别的地方也这样用过 应该没问题
    请验证5楼的
    对,可以看下传入参数师in_condition是不是错了?你们说的是看哪   听不太明白 说具体点
      

  8.   

    在引号内做单引号,要写重复都是字符串 类型啊  用的两个单引号  别的地方也这样用过 应该没问题
    请验证5楼的看哪里 java那边?具体说下  不太懂
    你传入时参数被解析,因为你是拼接sql,参数解析后的字符串两边是否留了空格,如果有引号引号是否对称等
      

  9.   

    在引号内做单引号,要写重复都是字符串 类型啊  用的两个单引号  别的地方也这样用过 应该没问题
    请验证5楼的看哪里 java那边?具体说下  不太懂
    你传入时参数被解析,因为你是拼接sql,参数解析后的字符串两边是否留了空格,如果有引号引号是否对称等你看截图 java那端 我把传过来的字符串打印出来了 没少东西 然后把sql语句复制出来也能单独执行 可以得到数据
      

  10.   

     where 1=1 :in_condition  
    检查一下传进来的 in_condition值是不是正确? 是不是没有用AND 连接之类的你前面的1=1已经是一个where条件了 和后面的条件之间要有连接词。。
      

  11.   

    where 1=1 :in_condition  group by roomno';
     open out_searchcur for v_sql using in_condition;
    把:in_condition 占位符 换成这样拼接起来就不能运行了 终于解决了 不过还是不知道原来那样哪里错了
    where 1=1 '||in_condition||'  group by roomno';
     open out_searchcur for v_sql ;