콘텐츠로 이동

SQLGetLobLength2

SQLGetLobLength2#

현재의 트랜잭션 도중에 얻어진 LOB Locator가 가리키는 LOB 의 길이를 얻어온다.

구 문#

SQLRETURN SQLGetLobLength2(SQLHSTMT      stmt,
                           SQLUBIGINT    locator,
                           SQLSMALLINT   locatorCType,
                           SQLUINTEGER  *valueLength,
                           SQLLEN       *indicator);

인 자#

자료유형 인자 사용 설명
SQLHSTMT stmt 입력 검색된 결과들에 대한 명령문 핸들
SQLUBIGINT locator 입력 LOB Locator
SQLSMALLINT locatorCType 입력 LOB Locator 의 C 데이터타입. 식별자로 다음의 값을 가질 수 있다.
- SQL_C_BLOB_LOCATOR
- SQL_C_CLOB_LOCATOR
SQLUINTEGER * valueLength 출력 LOB 의 길이를 저장하기 위해 사용한다.
포인터가 가리키는 버퍼는 데이터 길이를 반환한다.
SQLLEN * indicator 출력 LOB 데이터가 NULL 인지 확인하기 위해 사용한다.
- SQL_NULL_DATA: LOB 데이터가 NULL인 경우
- 0: Empty LOB 이거나 일반 LOB 데이터의 경우

결괏값#

SQL_SUCCESS
SQL_SUCCESS_WITH_INFO
SQL_INVALID_HANDLE
SQL_ERROR

설 명#

LOB locator가 가리키는 LOB의 길이를 얻는 함수로, LOB 데이터가 NULL인지 Empty LOB인지 확인하는데 사용된다.

valueLength 인자를 통해 LOB의 길이가 리턴되고, indicator 인자를 통해 NULL 인지 Empty LOB 인지 확인할 수 있다.

  • indicator가 SQL_NULL_DATA를 반환하면 NULL
  • indicator가 0이고 valueLength가 0을 반환하면 Empty LOB

진 단#

SQLSTATE 설명 부연설명
08S01 통신 회선 장애 (데이터 송수신 실패) Altibase CLI 드라이버와 DB간에 함수 처리가 완료되기 전에 통신 회선 실패
HY000 일반 오류

관련 함수#

SQLEmptyLob
SQLBindCol
SQLBindParameter
SQLFetch
SQLExecute
SQLGetLob
SQLPutLob

예 제#

if (SQLGetLobLength2(stmt, lobLoc, SQL_C_BLOB_LOCATOR, &valueLength, &indicator) != SQL_SUCCESS)
{
    execute_err(dbc, stmt, "SQLGetLobLength : ");
    SQLFreeStmt(stmt, SQL_DROP); 
    return SQL_ERROR;
}