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;
}