请问谁能告诉我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是不是这样操作的。
希望大家给出正确,或者更有效简单的方法。谢谢。
以下参照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是不是这样操作的。
希望大家给出正确,或者更有效简单的方法。谢谢。
Error number:917,ORA-00917: missing comma但是光用这个查询语句是好的(后面clob数据没插入成功),今天我是为了显示中文方便把系统(redhat as4)的语言换成了中文。会不会是这个原因导致插入失败?请告人指点。