
OCI 연결을 종료하는 oci_free_descriptor() 함수는 OCI 연결을 해제하는 데 사용됩니다. 이 함수는 OCI 연결을 해제하고 메모리를 해제합니다.
이 함수를 사용하는 방법은 다음과 같습니다.
1. OCI 연결을 사용한 후 oci_free_descriptor() 함수를 호출하여 OCI 연결을 해제합니다.
2. OCI 연결을 해제한 후, oci_free_descriptor() 함수를 다시 호출하여 메모리를 해제합니다.
주의할 점은 oci_free_descriptor() 함수를 호출하기 전에 OCI 연결이 종료되어야 한다는 것입니다. 만약 OCI 연결이 종료되지 않은 상태에서 oci_free_descriptor() 함수를 호출하면 오류가 발생할 수 있습니다.
OCI 연결을 해제하는 예제 코드는 다음과 같습니다.
#hostingforum.kr
c
#include
// OCI 연결을 설정합니다.
sword connect OCIEnv *envhp, OCIError *errhp, OCIStmt *stmthp, OCIParam *pmp, in unsigned char *ub8arr, dvoid *authp, OCIExtProcContext *extpctx)
{
// OCI 연결을 설정합니다.
OCIEnvCreate(envhp, OCI_DEFAULT, 0, 0, 0, 0, 0, 0);
OCIHandleAlloc(envhp, (dvoid )&errhp, OCI_HTYPE_ERROR, 0, 0);
OCIHandleAlloc(envhp, (dvoid )&stmthp, OCI_HTYPE_STMT, 0, 0);
OCIHandleAlloc(envhp, (dvoid )&pmp, OCI_HTYPE_PARAM, 0, 0);
OCIHandleAlloc(envhp, (dvoid )&authp, OCI_HTYPE_AUTO, 0, 0);
OCIHandleAlloc(envhp, (dvoid **)&extpctx, OCI_HTYPE_EXTPROC, 0, 0);
// OCI 연결을 설정합니다.
OCIStmtPrepare(stmthp, errhp, (OraText *)ub8arr, strlen((char *)ub8arr), (ub4)strlen((char *)ub8arr), OCI_NTV_SYNTAX, OCI_DEFAULT);
// OCI 연결을 종료합니다.
OCIHandleFree(errhp, OCI_HTYPE_ERROR);
OCIHandleFree(stmthp, OCI_HTYPE_STMT);
OCIHandleFree(pmp, OCI_HTYPE_PARAM);
OCIHandleFree(authp, OCI_HTYPE_AUTO);
OCIHandleFree(extpctx, OCI_HTYPE_EXTPROC);
OCIHandleFree(envhp, OCI_HTYPE_ENV);
// OCI 연결을 종료합니다.
oci_free_descriptor(errhp);
oci_free_descriptor(stmthp);
oci_free_descriptor(pmp);
oci_free_descriptor(authp);
oci_free_descriptor(extpctx);
oci_free_descriptor(envhp);
}
int main()
{
// OCI 연결을 설정합니다.
OCIEnv *envhp;
OCIError *errhp;
OCIStmt *stmthp;
OCIParam *pmp;
dvoid *authp;
OCIExtProcContext *extpctx;
// OCI 연결을 설정합니다.
connect(envhp, errhp, stmthp, pmp, (unsigned char *)"SELECT * FROM DUAL", authp, extpctx);
// OCI 연결을 종료합니다.
OCIHandleFree(errhp, OCI_HTYPE_ERROR);
OCIHandleFree(stmthp, OCI_HTYPE_STMT);
OCIHandleFree(pmp, OCI_HTYPE_PARAM);
OCIHandleFree(authp, OCI_HTYPE_AUTO);
OCIHandleFree(extpctx, OCI_HTYPE_EXTPROC);
OCIHandleFree(envhp, OCI_HTYPE_ENV);
// OCI 연결을 종료합니다.
oci_free_descriptor(errhp);
oci_free_descriptor(stmthp);
oci_free_descriptor(pmp);
oci_free_descriptor(authp);
oci_free_descriptor(extpctx);
oci_free_descriptor(envhp);
return 0;
}
이 예제 코드는 OCI 연결을 설정하고 종료하는 방법을 보여줍니다. OCI 연결을 종료하기 전에 OCIHandleFree() 함수를 호출하여 OCI 연결을 해제하고, oci_free_descriptor() 함수를 호출하여 메모리를 해제합니다.
2025-07-18 14:09