대형 오브젝트(LOB)
용어 대형 오브젝트(LOB) 및 일반 약어 LOB는 BLOB, CLOB 또는 DBCLOB 데이터 유형을 가리킵니다. 유니코드 데이터베이스에서 NCLOB는 DBCLOB의 동의어로 사용될 수 있습니다.
LOB값에는 가변 길이 문자열에 설명된 대로제한사항이 적용됩니다. 이러한 제한사항은 LOB 문자열의 길이 속성이 254바이트 이하인 경우에도 적용됩니다.
LOB 값은 대형일 수 있고 이러한 값을 데이터베이스 서버에서 클라이언트 애플리케이션 프로그램 호스트 변수로 전송하는 데에는 시간이 많이 소요될 수 있습니다. 애플리케이션 프로그램은 일반적으로 LOB 값을 전체로서가 아니라 한 번에 하나씩 처리하므로 애플리케이션은 대형 오브젝트(LOB) 로케이터를 사용하여 LOB 값을 참조할 수 있습니다.
대형 오브젝트 로케이터 또는 LOB 로케이터는 값이 데이터베이스 서버에서 단일 LOB 값을 표시하는 호스트 변수입니다.
애플리케이션 프로그램은 LOB 로케이터에 LOB 값을 선택할 수 있습니다. 그런 다음 LOB 로케이터를 사용하면, 애플리케이션 프로그램은 로케이터 값을 입력으로 제공하여 LOB 값에서 데이터베이스 조작을 요청할 수 있습니다(예: 스칼라 함수 SUBSTR, CONCAT, VALUE 또는 LENGTH 적용, 지정 수행, LIKE 또는 POSSTR로 LOB 검색, LOB에 대해 사용자 정의 함수 적용). 결과로 나오는 출력(클라이언트 호스트 변수에 지정된 데이터)은 일반적으로 입력 LOB 값의 작은 서브세트입니다.
SUBSTR(lob_value_1 CONCAT lob_value_2 CONCAT lob_value_3, 42, 6000000)일반
호스트 변수에 널(NULL) 값이 선택되면 표시기 변수는
-1로 설정되어 값이 널임을 표시합니다. 그러나 LOB 로케이터의 경우에는 표시기 변수의 의미는
약간 다릅니다. 로케이터 호스트 변수 자체는 절대 널(Null)일 수 없으므로
음수 표시기 변수 값은 LOB 로케이터가 표시하는 LOB 값이 널임을 나타냅니다. 널(NULL) 정보가 표시기 변수 값 덕분에
클라이언트에 로컬로 유지되면 서버는 유효한 로케이터로 널을 추적하지 않습니다.LOB 로케이터가 데이터베이스에서 행이나 위치가 아니라 값을 표시한다는 점을 이해하는 것이 중요합니다. 로케이터로 값이 선택되면 로케이터가 참조하는 값에 영향을 미치는 원본 행이나 테이블에서는 수행할 수 있는 작업이 없습니다. 로케이터와 연관된 값은 트랜잭션이 종료할 때까지 또는 로케이터가 명시적으로 자유롭게 될 때까지 중 먼저 발생하는 일까지만 유효합니다. 로케이터는 이 함수를 제공하기 위해 데이터의 추가 사본을 강제 실행하지 않습니다. 대신 로케이터 메커니즘은 기본 LOB 값의 설명을 저장합니다. LOB 값(또는 앞에 표시한 대로 표현식)의 구체화는 실제로 호스트 변수의 양식으로 된 사용자 버퍼 또는 데이터베이스의 또 다른 레코드 등 어떤 위치에 지정될 때까지 지연됩니다.
LOB 로케이터는 트랜잭션 중에 LOB 값을 참조하는 데 사용되는 메커니즘일뿐입니다. 이는 이것이 작성된 트랜잭션 밖에서는 유지되지 않습니다. 이는 데이터베이스 유형이 아닙니다. 이는 데이터베이스에 저장되지 않고, 그 결과, 뷰나 검사 제한조건에 참여할 수 없습니다. 그러나 LOB 로케이터는 LOB 유형의 클라이언트 표시이므로, FETCH, OPEN 또는 EXECUTE 문이 사용하는 SQLDA 구조 내에 설명될 수 있도록 LOB 로케이터의 SQLTYPE이 있습니다.