各位老大!我有一段程序是查询Oracle数据库,数据库中有数据,但VB检索回是一个空纪录的数据集,没有错误信息,单执行这个SQL语句,Oracle报的错误信息是04031的,内存分配问题,我怎样才能在VB程序中接收到Oracle返回的错误信息啊?请大家帮帮忙,谢谢大家了!

解决方案 »

  1.   

    http://www.dbanotes.net/Oracle/Ora-04031.htm
      

  2.   

    谢谢faysky2()!我是想知道如何在VB中截取到Oracle返回的错误信息。
      

  3.   

    2.诊断ORA-04031 错误 ORA-04031 错误通常是因为库高速缓冲中或共享池保留空间中的碎片。 在加大共享池大小的时 候考虑调整应用 
    使用共享的SQL 并且调整如下的参数: SHARED_POOL_SIZE, 
    SHARED_POOL_RESERVED_SIZE, 
    SHARED_POOL_RESERVED_MIN_ALLOC. 首先判定是否ORA-04031 错误是由共享池保留空间中的库高速缓冲的碎片产生的。提交下的查 询: SELECT free_space, avg_free_size, used_space, avg_used_size, 
    request_failures, last_failure_size 
    FROM v$shared_pool_reserved; 如果: REQUEST_FAILURES > 0 并且 
    LAST_FAILURE_SIZE > SHARED_POOL_RESERVED_MIN_ALLOC 那么ORA-04031 错误就是因为共享池保留空间缺少连续空间所致。 
    要解决这个问题,可以考虑加大SHARED_POOL_RESERVED_MIN_ALLOC 来降低缓冲进共 享池保留空间的对 
    象数目,并增大 SHARED_POOL_RESERVED_SIZE 和SHARED_POOL_SIZE 来加大共享池保留空间的可用 
    内存。 如果: 
    REQUEST_FAILURES > 0 并且 
    LAST_FAILURE_SIZE < SHARED_POOL_RESERVED_MIN_ALLOC 或者 REQUEST_FAILURES 等于0 并且 
    LAST_FAILURE_SIZE < SHARED_POOL_RESERVED_MIN_ALLOC 那么是因为在库高速缓冲缺少连续空间导致ORA-04031 错误。 第一步应该考虑降低SHARED_POOL_RESERVED_MIN_ALLOC 以放入更多的对象到共享池 
    保留空间中并且加大SHARED_POOL_SIZE。
      

  4.   

    用On Error语句看能不能捕获到
      

  5.   

    我有试过,on error截不到错误的。咳~