请问谁能告诉我oracle occi 操作的Clob数据的具体做法啊?
以下参照oracle的文档的例子写的自己的代码,但是有问题。
-----------------------------------------------------
         strcpy(sql,"insert into alarm_info values(To_Date('%s','YYYY-MM-DD HH24:MI:SS'),'%s',%d,'%s','%s',%d,'%s',%d,%d,To_Date('%s','YYYY-MM-DD HH24:MI:SS'),:alarm_content");
         sprintf(sqlStmt,sql,Falarminfo.alarm_sec,Falarminfo.alarm_name,Falarminfo.severity,Falarminfo.description
           ,Falarminfo.sms_to,Falarminfo.sms_status,Falarminfo.email_to,Falarminfo.email_status,Falarminfo.alarm_status,Falarminfo.alarmed_label); 
 try
 {
  stmt = conn->createStatement(sqlStmt);
  Clob vClob(conn);
  vClob.setEmpty();
  stmt->setClob(1,vClob);
      stmt->executeUpdate();       //用gdb 调试  到这里就没有响应了 查询语句没问题。
      conn->commit();
       conn->terminateStatement (stmt);
      
      stmt = conn->createStatement("select alarm_content from alarm_info for update");
      rset = stmt->executeQuery();
      while (rset->next ())
      {
      vClob = rset->getClob(1);
      vClob.open();
      vClob.write(sizeof(Falarminfo.alarm_content), (unsigned  char*)Falarminfo.alarm_content, sizeof(Falarminfo.alarm_content),   1); 
      vClob.close();
  }
 stmt->executeUpdate();
 conn->commit();
  
     stmt->closeResultSet(rset);
         conn->terminateStatement (stmt);
   }
catch(SQLException ex)
  {------------------------------------------------------------------------------------
初次用c/c++ occi, 很多地方不明白。不知道Clob是不是这样操作的。
希望大家给出正确,或者更有效简单的方法。谢谢。

解决方案 »

  1.   

    再调了下发现提示错误oracle error when open alert_instance: malert_formula_id=1 
     Error number:917,ORA-00917: missing comma但是光用这个查询语句是好的(后面clob数据没插入成功),今天我是为了显示中文方便把系统(redhat as4)的语言换成了中文。会不会是这个原因导致插入失败?请告人指点。
      

  2.   

    我已经弄好了,是我代码的问题。但是还是希望大家有好的操作Clob的方法能给出。分照送。