카테고리:

시스템 함수 (시스템 정보)

SYSTEM$STREAM_GET_TABLE_TIMESTAMP

지정된 스트림에 대한 현재 오프셋 또는 그 이전의 최신 테이블 버전의 타임스탬프를 나노초 단위로 반환합니다. 스트림이 쿼리(또는 소비)된 경우, 반환된 레코드에는 이 테이블 버전 이후 및 현재 시간 이전에 커밋된 모든 트랜잭션이 포함됩니다.

참고

이 함수는 주로 스트림을 “부트스트랩”하는 수단으로서 만들어졌습니다(즉, 테이블이 만들어진 기간(테이블 버전 t0) 및 지정된 스트림이 만들어진 기간 사이에 삽입된 레코드 세트를 반환). 이 함수가 도입된 이후, CHANGES 절을 포함하는 CREATE STREAMSELECT 문은 이제 AT | BEFORE 절을 사용하는 Time Travel을 지원합니다. 이러한 옵션은 과거 테이블 레코드를 쿼리하는 데 더 큰 유연성을 제공합니다.

구문

SYSTEM$STREAM_GET_TABLE_TIMESTAMP('<stream_name>')
Copy

인자

stream_name

쿼리할 스트림의 이름입니다.

  • 데이터베이스와 스키마(이름이 정규화된 경우)를 포함하여 전체 이름을 작은따옴표로 묶어야 합니다. 즉, '<db>.<스키마>.<스트림_이름>' 이어야 합니다.

  • 스트림 이름이 대/소문자를 구분하거나 특수 문자나 공백이 포함된 경우, 대/소문자를 처리하려면 큰따옴표가 필요합니다. 큰따옴표는 작은따옴표로 묶어야 합니다. 즉, '"<스트림_이름>"' 이어야 합니다.

사용법 노트

  • 이 함수는 입력이 뷰의 스트림인 경우 오류를 반환합니다.

    기존 스트림에 대한 현재 오프셋에서 또는 그 이전에 스트림을 만들려면 기존 스트림과의 단순성 및 최대 호환성을 위해 기존 스트림 이름을 AT | BEFORE 절에 대한 입력으로 제공하는 것이 좋습니다.

    CREATE STREAM ... AT ( STREAM => '<stream-name>' )
    
    Copy

스트림의 현재 오프셋에 대한 타임스탬프를 쿼리합니다.

create table MYTABLE1 (id int);

create table MYTABLE2(id int);

create or replace stream MYSTREAM on table MYTABLE1;

insert into MYTABLE1 values (1);

-- consume the stream
begin;
insert into MYTABLE2 select id from MYSTREAM;
commit;

-- return the current offset for the stream
select system$stream_get_table_timestamp('MYSTREAM');
Copy