
	                	                 
OCI 세션에 액션을 설정하는 함수인 oci_set_action 함수는, 액션을 설정하면 해당 액션을 수행할 때 OCI가 자동으로 액션을 호출합니다. 
액션 설정의 동작 원리는 다음과 같습니다.
1. 액션을 설정하기 전에, 액션을 수행할 때 필요한 파라미터를 설정해야 합니다. 
2. oci_set_action 함수를 호출하여 액션을 설정합니다. 
3. 액션을 수행할 때, OCI는 자동으로 액션을 호출합니다. 
액션 설정이 실패하는 경우의 오류 코드는 다음과 같습니다.
* ORA-12519: TNS:전달된 액션 이름이 잘못되었습니다.
* ORA-12520: TNS: 액션 이름이 존재하지 않습니다.
액션 설정이 실패하는 경우의 오류 메시지는 다음과 같습니다.
* "ORA-12519: TNS:전달된 액션 이름이 잘못되었습니다." : 액션 이름이 잘못되었습니다.
* "ORA-12520: TNS: 액션 이름이 존재하지 않습니다." : 액션 이름이 존재하지 않습니다.
액션 설정이 실패하는 경우의 오류 코드와 오류 메시지를 확인하려면, OCI의 오류 코드와 오류 메시지를 확인하는 함수인 oci_error 함수를 사용해야 합니다. 
예를 들어, 액션 설정이 실패하는 경우의 오류 코드와 오류 메시지를 확인하려면, 다음과 같이 코드를 작성할 수 있습니다.
#hostingforum.kr
c
#include 
int main() {
    OCIEnv *envhp;
    OCISvcCtx *svchp;
    OCIError *errhp;
    OCIStmt *stmthp;
    OCIDefine *defhp;
    // OCI 세션을 열고, 액션을 설정합니다.
    if (OCIEnvCreate(&envhp, OCI_DEFAULT, 0, 0, 0, 0, 0, 0) != OCI_SUCCESS) {
        printf("OCIEnvCreate failedn");
        return 1;
    }
    if (OCIHandleAlloc(envhp, (dvoid )&errhp, OCI_HTYPE_ERROR, 0, 0) != OCI_SUCCESS) {
        printf("OCIHandleAlloc failedn");
        return 1;
    }
    if (OCIHandleAlloc(envhp, (dvoid )&svchp, OCI_HTYPE_SVCCTX, 0, 0) != OCI_SUCCESS) {
        printf("OCIHandleAlloc failedn");
        return 1;
    }
    if (OCIHandleAlloc(envhp, (dvoid )&stmthp, OCI_HTYPE_STMT, 0, 0) != OCI_SUCCESS) {
        printf("OCIHandleAlloc failedn");
        return 1;
    }
    if (OCIHandleAlloc(envhp, (dvoid )&defhp, OCI_HTYPE_DEFINE, 0, 0) != OCI_SUCCESS) {
        printf("OCIHandleAlloc failedn");
        return 1;
    }
    // 액션을 설정합니다.
    if (oci_set_action(envhp, "액션 이름", 0, 0, 0, 0, 0, 0) != OCI_SUCCESS) {
        // 액션 설정이 실패한 경우의 오류 코드와 오류 메시지를 확인합니다.
        ub4 errcode;
        text *errbuf;
        size_t errbuf_size = 512;
        if (oci_error(errhp, &errcode, &errbuf, &errbuf_size) != OCI_SUCCESS) {
            printf("OCIErrorGet failedn");
            return 1;
        }
        printf("오류 코드: %dn", errcode);
        printf("오류 메시지: %sn", errbuf);
    }
    // 액션을 수행합니다.
    return 0;
}
이 코드는 액션 설정이 실패하는 경우의 오류 코드와 오류 메시지를 확인합니다.
2025-05-29 00:55