扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
单条查询
sql: select username,age from student where username=:p1;
如果此字段有可能有空值,则
hDefine = NULL;
swResult = OCIDefineByPos(stmtp &hDefine, errhp, 1, tstd.username, sizeof(tstd.username), SQLT_CHR, & sb2aInd[0], NULL, NULL, OCI_DEFAULT);
如果此字段没有空值,则
hDefine = NULL;
swResult = OCIDefineByPos(stmtp &hDefine, errhp, 1, tstd.username, sizeof(tstd.username), SQLT_CHR, NULL, NULL, NULL, OCI_DEFAULT);
批量查询
select username,age from student where age>30;
hDefine = NULL;
swResult = OCIDefineByPos(stmtp, &hDefine, errhp, 1, &tstd[0].username,
sizeof(tstd[0].usenmae), SQLT_CHR, NULL, NULL, NULL, OCI_DEFAULT);
swResult = OCIDefineArrayOfStruct(hDefine, errhp, sizeof(tstd[0]), 0, 0, 0);
11.提取结果
sword OCIStmtFetch (
OCIStmt *stmtp,//语句句柄
OCIError *errhp,
ub4 nrows, //从当前位置处开始一次提取的记录数,对于数据变量,可以>1,否则不能>1
ub2 orientation,//提取的方向:OCI_FETCH_NEXT
ub4 mode //OCI_DEFAULT
)
eg
while ((swResult=OCIStmtFetch stmtp errhp,1,OCI_FETCH_NEXT,OCI_DEFAULT)) != OCI_NO_DATA)
{
……
}
12.事务操作
开始一个事务
sword OCITransStart (
OCISvcCtx *svchp,
OCIError *errhp,
uword timeout, //**
ub4 flags );
**注:
1. Timeout:
当flag=OCI_TRANS_RESUME:它表示还有多少秒事务将被激活
=OCI_TRANS_NEW: 事务响应的超时时间(秒)
2. Flags:指定一个新的事务还是已有事务
=OCI_TRANS_NEW:定义一个新的事务
=OCI_TRANS_RESUME
准备一个事务:
sword OCITransPrepare (
OCISvcCtx *svchp,
OCIError *errhp,
ub4 flags );//OCI_DEFAULT
sword OCITransForget (
OCISvcCtx *svchp,
OCIError *errhp,
ub4 flags );//OCI_DEFAULT
断开一个事务:
sword OCITransDetach (
OCISvcCtx *svchp,
OCIError *errhp,
ub4 flags );//OCI_DEFAULT
提交一个事务:
sword OCITransCommit (
OCISvcCtx *svchp, //服务环境句柄
OCIError *errhp,
ub4 flags ); //OCI_DEFAULT
回滚一个事务
sword OCITransRollback (
dvoid *svchp,
OCIError *errhp,
ub4 flags ); //OCI_DEFAULT
四. OCI数据类型与C语言数据类型对照表
表字段类型 OCI类型 C类型 备注
Number(N) SQLT_UIN int 无符号整型
Number(N) SQLT_INT int 有符号整型
Number(n,m) SQLT_FLT float 符点数
Varchar2(N) Sqlt_chr Char 字符串
Raw(N) Sqlt_BIN 具体看不同的定义 二进制类型,多用于一个结构字段
DATE SQLT_DAT 无 最好转换成字符串或数字
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者