
OCI_Bind_Array_By_Name 함수는 Oracle PL/SQL에서 배열을 바인딩하는 데 사용되는 함수입니다. 이 함수는 OCI (Oracle Call Interface) 함수 중 하나로, Oracle 데이터베이스와 PL/SQL 프로그램을 연결하는 데 사용됩니다.
OCI_Bind_Array_By_Name 함수의 사용법은 다음과 같습니다.
1. 함수의 인수:
- svchp: OCI 서비스 핸들러
- errhp: 오류 핸들러
- stmtp: OCI 문 핸들러
- bindarr: 바인딩할 배열
- numdef: 배열의 정의된 항목 수
- numind: 배열의 실제 항목 수
2. 함수의 반환값:
- 성공 시 OCI_SUCCESS, 실패 시 OCI_ERROR
3. 오류처리 방법:
- 오류 핸들러 (errhp)를 사용하여 오류를 처리할 수 있습니다.
OCI_Bind_Array_By_Name 함수를 사용한 예제 코드는 다음과 같습니다.
#hostingforum.kr
sql
DECLARE
v_errhp INTEGER;
v_svp INTEGER;
v_stmh INTEGER;
v_numdef INTEGER;
v_numind INTEGER;
v_bindarr INTEGER;
v_array INTEGER := 10;
v_array2 INTEGER := 20;
v_array3 INTEGER := 30;
BEGIN
-- 오류 핸들러 초기화
v_errhp := OCILogon(OCIServerHandle, OCIErrorHandle, OCIErrorDesc);
-- OCI 서비스 핸들러 초기화
v_svp := OCIEnvInit(NULL, OCI_DEFAULT, 0, NULL);
-- OCI 문 핸들러 초기화
v_stmh := OCIParse(v_svp, "SELECT * FROM dual");
-- 배열 바인딩
v_bindarr := OCI_Bind_Array_By_Name(v_svp, v_errhp, v_stmh, "array", v_array, 1, 1);
v_bindarr := OCI_Bind_Array_By_Name(v_svp, v_errhp, v_stmh, "array2", v_array2, 1, 1);
v_bindarr := OCI_Bind_Array_By_Name(v_svp, v_errhp, v_stmh, "array3", v_array3, 1, 1);
-- OCI 문 실행
v_numdef := 3;
v_numind := 3;
v_bindarr := OCIStmtExecute(v_svp, v_stmh, v_errhp, 1, NULL, NULL, OCI_DEFAULT);
-- 결과 가져오기
v_array := 0;
v_array2 := 0;
v_array3 := 0;
v_bindarr := OCIStmtFetch(v_svp, v_stmh, 1, OCI_DEFAULT, NULL);
-- 오류 핸들러 해제
OCILogoff(v_errhp);
-- OCI 서비스 핸들러 해제
OCIHandleFree(v_svp, OCI_HTYPE_ENV);
-- OCI 문 핸들러 해제
OCIHandleFree(v_stmh, OCI_HTYPE_STMT);
-- 결과 출력
DBMS_OUTPUT.PUT_LINE('array: ' || v_array);
DBMS_OUTPUT.PUT_LINE('array2: ' || v_array2);
DBMS_OUTPUT.PUT_LINE('array3: ' || v_array3);
END;
OCI_Bind_Array_By_Name 함수를 사용하여 배열을 바인딩하는 데 성공했으며, 원하는 데이터를 가져올 수 있습니다.
2025-06-04 10:21