本帖最后由 slxx0712 于 2009-07-04 14:32:09 编辑

解决方案 »

  1.   

    CLOB字段是存什么东西会不会很大,OPEN无响应,可能是正在查询,你不妨试一下只查询一条记录试一下,看是不是数据量太大影响的,另外也要看看你和服务器的传输距离有多远.
      

  2.   

    应该不至于是数据量太大的缘故啊,是局域网内查询的。我只返回了10条记录。刚刚试了下只查2条记录,还是老现象,第一次查询,能成功返回的,数据都查到了,但第二次查询就死在open那里了。应该不是clob字段数据量大的缘故,内容其实不大的,用plsql可以查到,全部范围,速度也还可以。
      

  3.   

    是不是Oracle有什么特殊的语法规则,你可以用存储过程试试,用ODAC调用存储过程,看行不行。
    我只知道写入BLOB/CLOB的时候要先用DBMS进行初始化,设置空值。
    读出BLOB的时候我用了流。 TBlobField(FieldByName('SGZJBLOB')).SaveToStream(sgzjoutputStream);
    //ParamByName('SGZJBLOB').AsOraBlob.SaveToStream(sgzjoutputStream);
     sgzjoutputStream.Position:=0;
    //ParamByName('SGZJBLOB').ParamType:=ptOutput; //输出显示模式
     edtSGZJ.Lines.LoadFromStream(sgzjoutputStream);