数据库读clob
在AIX上的多线程开发,char test[512000];用的栈空间,有2个这么大的变量,好像AIX只支持600K的栈,所以会core,想用堆空间,虽然oracle proc里面编译选项是CPP,可是不让我char *test = new char[512000];
OCIClobLocator *sbillpic1data_VALUE;
readClob(sbillpic1data_VALUE, test);
CUFcString a = test;
其实就是最后想把test赋值给a,
int CEntityBase::readClob(OCIClobLocator *p_clob, char* buff)
{
struct sqlca sqlca;
EXEC SQL CONTEXT USE:m_pWorkThread->m_pvSqlCtx;
EXEC SQL BEGIN DECLARE SECTION;
OCIClobLocator *clob;
varchar *lvr;
int amt;
int bufsize;
EXEC SQL END DECLARE SECTION;
#if 0
if(sqlca.sqlcode != 0)
{
return sqlca.sqlcode;
}
#endif
bufsize = 2048;
clob = p_clob;
char* tmp = new char[2 + bufsize];
memset(tmp, 0, 2+bufsize);
lvr = (varchar *)tmp;
lvr->len = bufsize;
int len = 0;
amt = 0;
EXEC SQL WHENEVER NOT FOUND DO break;
while (TRUE)
{
memset(lvr,0,2+bufsize);
EXEC SQL LOB READ :amt FROM :clob INTO :lvr WITH LENGTH :bufsize;
strcat(buff, (char *)lvr->arr);
// memcpy(buff + len, lvr->arr, lvr->len);
// len += lvr->len;
}
EXEC SQL WHENEVER NOT FOUND CONTINUE;
strcat(buff, (char *)lvr->arr);
// memcpy(buff + len, lvr->arr, lvr->len);
// len += lvr->len;
// buff[len] = 0;
delete[] tmp;
return 0;
}OCIClobLocator *sbillpic1data_VALUE;
readClob(sbillpic1data_VALUE, test);
CUFcString a = test;
其实就是最后想把test赋值给a,
...全文
相关推荐
ehcache和h2 database资料
支持事务(ACID)特性,包括读已提交、可重复读和串行化隔离级别。6. 提供丰富的数据库工具,如Web管理工具,方便进行数据库管理和操作。
HyperSQL Database Engine (HSQLDB)-开源
**HyperSQL Database Engine (HSQLDB)** 是一个完全开源的、用Java编写的数据库管理系统,其设计目标是提供高效、轻量级的解决方案,适用于多种应用场景。
列式数据库的研究.pdf
列式数据库的应用前景列式数据库的应用前景非常广阔,包括数据仓库、在线分析、报表查询、数据挖掘等领域。
oracle对大对象类型操作:blob,clob,nclob,bfile
但是,BFILE只支持读/写操作,不能进行事务控制,且必须保持与数据库实例的网络连接才能访问。在实际应用中,选择哪种LOB类型取决于数据的类型和需求。
DB存储过程开发基础知识PPT学习教案.pptx
以上是DB存储过程开发的基础知识,掌握这些概念和技巧,对于开发高效、安全的数据库应用至关重要。


IBM AIX
