windows form C#程序使用enterprise library3 访问oracle 11g数据库存储过程获取数据,debug错误信息如上。求解!BTW:存储过程在sql developer中执行可以正确返回数据。

解决方案 »

  1.   

    现象:Oracle 插入时间时 ,报错:ORA-01861: 文字与格式字符串不匹配  解决方法: 这个错误一般出现在时间字段上,即你插入的时间格式和数据库现有的时间格式不一致,解决的方法是格式化你
    插入的时间: to_date('#','yyyy-mm-dd hh24:mi:ss') 这样的插入的时候就不会报这个ORA-01861 当用pl/sql developer的text importer的时候,就会经常遇到这个错误,由于pl/sql developer的bug,有时不
    能把所有的date列格式化,就需要手工格式化date列
      

  2.   

    没有更新操作,只是读取数据。而且sqldeveloper中执行能够返回数据。
      

  3.   

    oracle我不太懂,不知道你有没有搜索
      

  4.   

    http://www.cnblogs.com/kirinboy/archive/2008/05/05/1183004.html
    参考
      

  5.   

    该存储过程接受三个参数:查询的开始时间、结束时间、查询类型,类型分别是字符串、字符串、整数型
    存储过程在sqldeveloper执行没问题,到程序报错同上。
    后来开始时间和结束时间都改成Date型,仍然是存储过程在sqldeveloper执行没问题,到程序报错同上。请各位高人会诊。
      

  6.   

    建议你先贴出存储过程的申明,程序调用该存储过程的部分代码,这样才好分析。我没看到代码的情况下,只能大致推断,是你获取返回值的时候设置有误,Oracle的存储过程返回结果集的方式和其它数据库是不一样的。
      

  7.   

    还是觉得是时间格式的问题。
    存储过程在sqldeveloper执行  三个参数是你给定的吧,格式肯定对的。
    但程序上时间格式是程序处理来的,所以建议你调试一下看看格式是否对
      

  8.   

    声明:
    create or replace PROCEDURE test 
    (
      v_StartTime IN Date,
      v_EndTime IN Date,
      v_category IN number,  
      cv_1 IN OUT SYS_REFCURSOR
    )发现一个问题,我如果使用rownum=1强制返回一条数据,程序可以顺利通过。
      

  9.   

    enterprise library3 里你用的什么方法?
      

  10.   


    sqldeveloper中和代码中使用相同的参数?不同参数的话可能是数据问题吧?
      

  11.   

    返回一行没问题,返回多行有问题,说明你的其他行的 值 可能不满足 类型
    其他行可能有的字段 是空值 ,导致这个错误假设 楼主要绑定 datatable  的话,可以 将初始时的 查询语句 格式化 每个字段
      

  12.   

    楼主确定没有出来数据??
    还是查询出来数据后处理有问题?  像System.DBNull没处理、日期转换等!调试下吧!