#include <oci.h> OCIEnv *m_pOCIEnv; OCIError *m_pOCIError; OCISvcCtx *m_pOCISvcCtx; OCIStmt *m_Insertp; OCIStmt *m_pOCIStmtSelectR; OCIBind *m_Bndhp; 登录: char szUserID[STRING_LEN]; char szPassWord[STRING_LEN]; char szServerName[STRING_LEN]; (void) OCIEnvCreate(&m_pOCIEnv, OCI_THREADED, (dvoid *)0, 0, 0, 0, (size_t) 0, (dvoid **)0); OCIHandleAlloc((dvoid *)m_pOCIEnv, (dvoid **)&m_pOCIError, OCI_HTYPE_ERROR, (size_t)0, (dvoid **)0); strcpy(szServerName, "Ora_servername"); strcpy(szUserID, "username"); strcpy(szPassWord, "password"); ProcessError(m_pOCIError, nRetCode = OCILogon(m_pOCIEnv, m_pOCIError, &m_pOCISvcCtx, (unsigned char *)szUserID, strlen(szUserID), (unsigned char *)szPassWord , strlen(szPassWord), (unsigned char *)szServerName, strlen(szServerName) )); if (nRetCode != OCI_SUCCESS) { return -1; } 一个Select查询的初始化: const char *pszSelectSql = NULL; pszSelectSql = "select OBJECT from ORIGIN WHERE HANDLE_FLAG=0 AND rownum<5"; OCIHandleAlloc((dvoid *)m_pOCIEnv, (dvoid **)&m_pOCIStmtSelectR, OCI_HTYPE_STMT, (size_t)0, (dvoid **)0); OCIStmtPrepare(m_pOCIStmtSelectR, m_pOCIError, (text *)pszSelectSql, (ub4)strlen(pszSelectSql), (ub4)OCI_NTV_SYNTAX, (ub4)OCI_DEFAULT) ; OCIDefine *m_pOCIDefSelect = NULL; ProcessError(m_pOCIError, OCIDefineByPos(m_pOCIStmtSelectR, &m_pOCIDefSelect, m_pOCIError, 1, (dvoid *) &lObject, (sword) sizeof(double), SQLT_FLT, (dvoid *) 0, (ub2 *)0, (ub2 *)0, OCI_DEFAULT)); 执行查询并取得记录集: OCIStmtExecute(m_pOCISvcCtx, m_pOCIStmtSelectR, m_pOCIError, (ub4)1, (ub4)0, (CONST OCISnapshot *)NULL, (OCISnapshot *)NULL, OCI_DEFAULT); while(errno==OCI_SUCCESS_WITH_INFO || errno==OCI_SUCCESS) { printf("ip=%f,%s/r/n", lObject, ""); errno = OCIStmtFetch ( m_pOCIStmtSelectR, m_pOCIError, 1, OCI_FETCH_NEXT, OCI_DEFAULT); } 原理是首先初始化OCI环境,分配表达式句柄,然后用OCIDefineByPos绑定变量,第四个参数是从1开始的查询结果对应的字段序号,最后用OCIStmtExecute执行查询,并调用OCIStmtFetch遍历结果集,没有结果会得到OCI_NO_DATA
[OCI] OCI基础学习笔记:Select的方法
最新推荐文章于 2025-09-01 13:03:26 发布
本文通过一个Oracle Call Interface (OCI)示例介绍了如何使用OCI进行数据库登录、执行查询及获取结果集的过程。具体步骤包括创建OCI环境、分配错误句柄、设置用户名密码等连接参数、准备SQL语句、绑定查询结果变量、执行查询并获取结果。

1868

被折叠的 条评论
为什么被折叠?



