
`oci_bind_by_name` 함수를 사용하여 매개변수를 바인딩하는 방법은 다음과 같습니다.
#hostingforum.kr
c
// 프로시저 매개변수 이름을 바인딩합니다.
OCIParam* name_param;
OCIParam* age_param;
OCIParamGet(stmt, OCI_HTYPE_STMT, 1, &name_param, err);
OCIAttrGet(name_param, OCI_HTYPE_PARAM, &name, 0, OCI_ATTR_NAME, err);
OCIParamGet(stmt, OCI_HTYPE_STMT, 2, &age_param, err);
OCIAttrGet(age_param, OCI_HTYPE_PARAM, &age, 0, OCI_ATTR_NAME, err);
// 바인딩합니다.
OCIAttrSet(name_param, OCI_HTYPE_PARAM, p_name, strlen(p_name), OCI_ATTR_VALUE, err);
OCIAttrSet(age_param, OCI_HTYPE_PARAM, &p_age, sizeof(p_age), OCI_ATTR_VALUE, err);
// 프로시저를 실행합니다.
OCIStmtExecute(stmt, err, conn, 1, NULL, NULL, OCI_DEFAULT);
위 코드는 `oci_bind_by_name` 함수를 사용하지 않고, 매개변수를 직접 바인딩하는 방법을 보여줍니다.
`oci_bind_by_name` 함수를 사용하는 방법은 다음과 같습니다.
#hostingforum.kr
c
// 바인딩합니다.
OCIAttrSet(name_param, OCI_HTYPE_PARAM, p_name, strlen(p_name), OCI_ATTR_NAME, err);
OCIAttrSet(age_param, OCI_HTYPE_PARAM, &p_age, sizeof(p_age), OCI_ATTR_NAME, err);
// 바인딩합니다.
OCIStmtBindByName(stmt, &name, err, name_param, OCI_TYPE_VARCHAR, strlen(p_name), 0, OCI_DEFAULT);
OCIStmtBindByName(stmt, &age, err, age_param, OCI_TYPE_NUMBER, sizeof(p_age), 0, OCI_DEFAULT);
위 코드는 `oci_bind_by_name` 함수를 사용하여 매개변수를 바인딩하는 방법을 보여줍니다.
두 방법 모두 프로시저를 실행하기 전에 매개변수를 바인딩해야 합니다.
2025-06-12 13:39