RID 및 RID_BIT 스칼라 함수

RID 및 RID_BIT 함수는 행을 고유하게 식별하는 데 사용됩니다. 각각 행의 행 ID(RID)를 리턴합니다. RID 함수의 결과와는 달리, RID_BIT 함수의 결과는 사용자가 잘못된 테이블로 이를 부주의하게 사용하는 것을 피할 수 있게끔 도와주기 위한 테이블 정보를 포함합니다. 두 함수 모두 비결정입니다.

Read syntax diagramSkip visual syntax diagramRIDRID_BIT(table-designator )

스키마는 SYSIBM입니다. 함수 이름은 자격이 부여된 이름으로 지정될 수 없습니다.

RID
RID 함수를 실행함을 표시합니다. Db2® 버전 11.5.3부터 파티션된 데이터베이스 환경에서 RID 함수를 사용할 수 있습니다. RID 함수가 제공하는 값에는 데이터베이스 파티션 정보가 포함되지 않습니다. 파티션된 데이터베이스 환경에서 DBPARTITIONNUM 를 사용하여 값을 고유하게 만드십시오.
RID 비트
RID_BIT 함수를 실행함을 표시합니다.
테이블 지정자
기본 테이블, 뷰 또는 중첩된 테이블 표현식을 고유하게 식별합니다(SQLSTATE 42703). 테이블 지정자가 뷰 또는 중첩된 테이블 표현식을 지정하는 경우 RID_BIT 및 RID 함수가 뷰 또는 중첩된 테이블 표현식의 기본 테이블 RID를 리턴합니다. 지정된 뷰 또는 중첩된 테이블 표현식은 외부 하위 선택에 하나의 기본 테이블만 포함해야 합니다(SQLSTATE 42703). 테이블 지정자는 삭제 가능해야 합니다(SQLSTATE 42703). 삭제 가능한 뷰에 대한 정보는 CREATE VIEW주의사항 섹션을 참조하십시오.

테이블 지정자를 지정하지 않는 경우 FROM절은 테이블 지정자가 되도록 파생할 수 있는 하나의 요소만 포함해야 합니다(SQL STATE 42703).

결과

결과의 데이터 유형은 BIGINT(RID의 경우) 또는 VARCHAR(16) FOR BIT DATA(RID_BIT의 경우)입니다. 결과는 널(null)일 수 있습니다.

RID 또는 RID_BIT 함수는 단일 행에 여러 번 호출될 때 다른 값을 리턴할 수 있습니다. 예를 들어, RID 또는 RID_BIT가 지정된 테이블에 대해 REORG 유틸리티가 실행되기 전과 실행된 후에 모두 실행되는 경우 함수가 각각 다른 값을 리턴할 수 있습니다.

참고

  • 애플리케이션에 낙관적 잠금을 구현하려면 RID_BIT 스칼라 함수에 인수로서 ROW CHANGE TOKEN 표현식이 리턴하는 값을 사용하십시오.
  • Db2 버전 11.5.3부터 RID 스칼라 함수를 컬럼으로 구성된 테이블과 함께 사용할 수 있습니다.
  • 구문 대체: 다음 대체는 비표준입니다. 이전 제품 버전 또는 다른 데이터베이스 제품과 호환성을 위해 지원됩니다.
    • 의사 컬럼 ROWID는 RID를 참조하는 데 사용될 수 있습니다. 규정되지 않은 ROWID 참조는 RID_BIT()와 동일하며, 규정된 ROWID(예: EMPLOYEE.ROWID)는 RID_BIT(EMPLOYEE)와 동일합니다.

예:

  • 예제 1: EMPLOYEE 테이블에서 부서 20에 있는 직원의 성과 RID를 리턴하십시오.
       SELECT RID_BIT (EMPLOYEE), ROW CHANGE TOKEN FOR EMPLOYEE, LASTNAME
         FROM EMPLOYEE
         WHERE DEPTNO = '20'
  • 예제 2: 제공된 테이블 EMP1은 다음과 같이 정의됩니다.
       CREATE TABLE EMP1 (
         EMPNO   CHAR(6),
         NAME    CHAR(30),
         SALARY  DECIMAL(9,2),
         PICTURE BLOB(250K),
         RESUME  CLOB(32K)
       )
    호스트 변수 HV_EMP_RID를 RID_BIT 내장 스칼라 함수의 값으로 설정하고 HV_EMP_RCT를 직원 수 3500에 해당하는 행에 대한 ROW CHANGE TOKEN 표현식의 값으로 설정하십시오.
       SELECT RID_BIT(EMP1), ROW CHANGE TOKEN FOR EMP1
         INTO :HV_EMP_RID, :HV_EMP_RCT FROM EMP1
         WHERE EMPNO = '3500'
    직원 및 사용자 정의 함수 UPDATE_RESUME를 식별하기 위해 해당 RID 값을 사용하면 직원의 급여가 $1000까지 증가되고 직원의 이력서가 갱신됩니다.
       UPDATE EMP1 SET
         SALARY = SALARY + 1000,
         RESUME = UPDATE_RESUME(:HV_RESUME)
       WHERE RID_BIT(EMP1) = :HV_EMP_RID
       AND ROW CHANGE TOKEN FOR EMP1 = :HV_EMP_RCT