여러 테이블에서 데이터를 선택하고 있으며 해당 테이블에서 최대 "타임 스탬프"를 가져와야합니다. 커스텀 캐시 컨트롤을 생성하려면이 기능이 필요합니다. 내가 설정 결과에 다음과 같은 정보를 추가 할 필요가SELECT에 집계 값을 추가하는 방법은 무엇입니까?
SELECT name, surname FROM tbl_name, tbl_surname WHERE tbl_name.id = tbl_surname.id
과 : 내가 쿼리 다음 한
tbl_name tbl_surname
id | name id | surname
--------- ------------
0 | John 0 | Doe
1 | Jane 1 | Tully
... ...
SELECT MAX(ora_rowscn) FROM (SELECT ora_rowscn FROM tbl_name
UNION ALL
SELECT ora_rowscn FROM tbl_surname);
내가 UNION을 사용하려고했지만, 난이 오류가 얻을 - 혼합 그룹을 단일 그룹 데이터가 아니거나 그와 같은 것이 아니라면 왜 내가 노동 조합을 사용할 수 없는지 압니다.
캐시 관리를 위해 DB에서 가져온 현재 스냅 샷의 타임 스탬프가 필요하므로 2 번의 호출로 나누고 싶지 않습니다. 그리고 select와 MAX 사이의 호출 사이에서 DB가 변경 될 수 있습니다. 테이블 123456 마지막 변화의 대략적인 시간입니다
John | Doe | 123456
Jane | Tully | 123456
(삽입, 업데이트, 삭제는) tbl_name를하고 tbl_surname : 여기
내가 원하는 결과입니다.
난 DB에 읽기 전용 액세스, 그래서 나는 ... 어떤 제안에 대한
감사를 트리거, 저장 프로 시저, 별도의 테이블 등을 만들 수 없습니다.
EDIT : * ora_rowscn * 값은 행의 블록마다 지정됩니다. 따라서 한 테이블에서이 값은 행마다 다를 수 있습니다. 쿼리에 관련된 두 테이블 (모두)의 최대 값이 필요합니다.
감사합니다. 지연되어 죄송합니다. 이제 귀하의 답변이 수락됩니다. – jnovacho