- 카테고리:
시스템 함수 (시스템 정보)
SYSTEM$STREAM_GET_TABLE_TIMESTAMP¶
지정된 스트림에 대한 현재 오프셋 또는 그 이전의 최신 테이블 버전의 타임스탬프를 나노초 단위로 반환합니다. 스트림이 쿼리(또는 소비)된 경우, 반환된 레코드에는 이 테이블 버전 이후 및 현재 시간 이전에 커밋된 모든 트랜잭션이 포함됩니다.
참고
이 함수는 주로 스트림을 “부트스트랩”하는 수단으로서 만들어졌습니다(즉, 테이블이 만들어진 기간(테이블 버전 t0
) 및 지정된 스트림이 만들어진 기간 사이에 삽입된 레코드 세트를 반환). 이 함수가 도입된 이후, CHANGES 절을 포함하는 CREATE STREAM 및 SELECT 문은 이제 AT | BEFORE 절을 사용하는 Time Travel을 지원합니다. 이러한 옵션은 과거 테이블 레코드를 쿼리하는 데 더 큰 유연성을 제공합니다.
구문¶
SYSTEM$STREAM_GET_TABLE_TIMESTAMP('<stream_name>')
인자¶
stream_name
쿼리할 스트림의 이름입니다.
데이터베이스와 스키마(이름이 정규화된 경우)를 포함하여 전체 이름을 작은따옴표로 묶어야 합니다. 즉,
'<db>.<스키마>.<스트림_이름>'
이어야 합니다.스트림 이름이 대/소문자를 구분하거나 특수 문자나 공백이 포함된 경우, 대/소문자를 처리하려면 큰따옴표가 필요합니다. 큰따옴표는 작은따옴표로 묶어야 합니다. 즉,
'"<스트림_이름>"'
이어야 합니다.
사용법 노트¶
이 함수는 입력이 뷰의 스트림인 경우 오류를 반환합니다.
기존 스트림에 대한 현재 오프셋에서 또는 그 이전에 스트림을 만들려면 기존 스트림과의 단순성 및 최대 호환성을 위해 기존 스트림 이름을 AT | BEFORE 절에 대한 입력으로 제공하는 것이 좋습니다.
CREATE STREAM ... AT ( STREAM => '<stream-name>' )
예¶
스트림의 현재 오프셋에 대한 타임스탬프를 쿼리합니다.
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');