disable the "Enable Query Timeout" flag in the ODBC Driver Configuration of the driverchange the CPTIMEOUT in the registry under: 
HKEY_LOCAL_MACHINE\SOFTWARE\ODBC\ODBCINST.INI\Oracle in OraHome8I to 0

解决方案 »

  1.   

    感谢各位的关注,“jiezhi”:您提供的第二种方法我实验过了,注册表中CPTimeout设为0,还是出现ORA-01013错误。您提供的第一种方法如何做?是否是ODBC驱动程序连接池里的“重试等待时间?”
        我用的是“ORACLE ODBC DRIVER ”
     我觉得这个问题概括起来就是 :ORACLE的客户端程序如何在执行时间较长的SQL操作时避免超时操作。 
        让我奇怪的是客户端运行 PLSQL 执行复杂费时的SQL操作时却不会有ORA-01013,PLSQL如何实现的?
      

  2.   

    那是因为plsql是嵌入的东西。
    你就在odbc的configure里面找一下
      

  3.   

    不是客户端的问题,在你的网络上有checkpoint 的防火墙吧?
      

  4.   

    csdn为什么楼主的问题只能显示4行呢,是不是防火墙的原因啊,还是别的原因呢
      

  5.   

    ORA-01013 user requested cancel of current operation Cause The user interrupted an Oracle operation by entering CTRL-C, Control-C, or another canceling operation. This forces the current operation to end. This is an informational message only. 
    Action Continue with the next operation.
      

  6.   

    感谢大家!!!
        问题已经解决了。毛病出在MFC的cdatabase 类上。我的程序通过这个类调用oracle客户端的命名服务。虽然ORACLE ODBC DRIVER被我去掉了超时值,但是cdatabase类里有缺省的15秒超时设置。当运行费时超过该值的操作时会中断操作。造成ora-01013错误。解决办法是把CDATABASE的超时值用SETQUERYTIMEOUT函数设大一些即可。