Kori 8월 18일, 2022에 포스트됨 공유하기 8월 18일, 2022에 포스트됨 Docwiki에 있는 "Change Views SQL Language Support"을 번역한 글(최종 번역일: 2022년 8월 18일) << 위로 가기: 체인지 뷰스 (Change Views) 아래 예문은 체인지 뷰스 (Change Views)를 지원하기 위해 재작성된 ISQL 명령-줄 (command-line) 도구(유틸리티)를 보여준다. 데이터베이스 안에 정의된 구독(subscription)들을 목록으로 표시하려면, SHOW SUBSCRIPTIONS 명령을 사용한다. 특정 구독의 세부 내용을 표시하려면, SHOW SUBSCRIPTION <구독_이름> 명령을 실행한다. ISQL SHOW SUBSCRIPTION 명령 SHOW SUBSCRIPTIONS; Subscription Name =================================================================== SUB_CUSTOMER_DELETES SUB_EMPLOYEE_CHANGES SUB_VARIOUS_CHANGES SHOW SUBSCRIPTION sub_employee_changes; Subscription name: SUB_EMPLOYEE_CHANGES Owner: SYSDBA Description: EMPLOYEE 테이블 안에서 발생한 변경 구독 EMPLOYEE (SALARY, DEPT_NO, EMP_NO) SHOW SUBSCRIPTION sub_customer_deletes; Subscription name: SUB_CUSTOMER_DELETES Owner: SYSDBA Description: CUSTOMER 테이블에서 발생한 삭제 구독 CUSTOMER FOR ROW (DELETE) SHOW SUBSCRIPTION sub_various_changes; Subscription name: SUB_VARIOUS_CHANGES Owner: SYSDBA Description: 여러 테이블에서 발생한 여러 변경을 구독 EMPLOYEE FOR ROW (INSERT, UPDATE, DELETE), CUSTOMER FOR ROW (INSERT, UPDATE, DELETE), SALES FOR ROW (UPDATE), DEPARTMENT (LOCATION) FOR ROW (UPDATE) ISQL SET CHANGES 명령 ISQL에는 SET 진술(statement)들의 모음이 있어서, 표시할(display) 결과 세트를 토글(toggle)할 수 있다. SET CHANGES 표시 토글은 해당 컬럼의 데이터 값과 해당 변경 상태를 옆에 달아서 함께 보여 줄 것인지 아닌 지를 왔다갔다 할 수 있다. <CHANGE> 컬럼은 의사(pseudo) 컬럼이며 여기에는 해당 컬럼의 값을 변경한 DML 진술의 유형이 표시된다. 이 변경 상태 모두는 새 구조인 XSQLDA의 멤버인 XSQLVAR.SQLIND에 의해서 반환된다. 데이터 변경 뷰를 지원하기 위해 인터베이스 SQL (ISQL)에 IS SAME 또는 IS NOT SAME 절이 추가되었다. ISQL에서 체인지 뷰스를 받아오기 (Retrieving Change Views from ISQL) <또 다른 사용자가 기존 직원을 다른 부서로 재배치한다. 그리고 또 다른 직원은 급여를 인상한다> SET SUBSCRIPTION sub_employee_changes ACTIVE; SELECT EMP_NO, DEPT_NO, SALARY FROM EMPLOYEE; EMP_NO DEPT_NO SALARY 37 120 50000 109 600 75000 SET CHANGES; SELECT EMP_NO, DEPT_NO, SALARY FROM EMPLOYEE; EMP_NO <change> DEPT_NO <change> SALARY <change> -------- ---------- ----------- 37 <same> 120 <update> 50000 <same> 109 <same> 600 <same> 75000 <update> COMMIT; SET SUBSCRIPTION 사용에 대한 자세한 정보는 구독 지정(SET SUBSCRIPTION)에 설명되어 있다. ISQL에서 체인지 뷰스를 위한 SQL 확장 (SQL Extensions for Change Views) 알아둘 점: 이 기능은 인터베이스 XE7 업데이트 1부터 제공된다. 데이터 변경 뷰를 지원하기 위해 인터베이스 SQL (ISQL)에 IS [NOT] {CHANGED | INSERTED | UPDATED | DELETED} 절이 추가되었다. 아래 예문을 참조한다. IS [ NOT ] UPDATED를 SELECT 쿼리(query) 안에서 사용하기 SET SUBSCRIPTION sub_employee_changes ACTIVE; SELECT EMP_NO, DEPT_NO, SALARY FROM EMPLOYEE WHERE SALARY IS UPDATED; EMP_NO DEPT_NO SALARY -------- ---------- ---------- 109 600 75000 위 예문의 결과를 보면 EMP_NO=37 직원이 부서를 이동한 것에 대한 행이 반환되지 않았다. 그 이유는 이 직원의 경우 부서만 이동했을 뿐 급여 조정이 없었기 때문이다. IS CHANGED 절을 사용하면 어떤 SQL 동작이든 해당 컬럼에 생긴 변경를 모두 탐지한다. 다음 단계 (Advance To) 메타데이터 지원 (Metadata Support) 2 다음 단계 (Advance To) 인용하기 이 댓글 링크 다른 사이트에 공유하기 더 많은 공유 선택 사항
Recommended Posts
이 토의에 참여하세요
지금 바로 의견을 남길 수 있습니다. 그리고 나서 가입해도 됩니다. 이미 회원이라면, 지금 로그인하고 본인 계정으로 의견을 남기세요.