Oracle 데이터베이스의 기존 테이블/레코드가 업데이트되었는지 확인하는 옵션이 있습니까?Oracle 내에서 레코드가 업데이트되는지 확인하십시오.
답변
모니터링 관점 (이전 변경 사항 제외)에는 트리거, 스트림 및 sysdate의 기본값이있는 열을 비롯한 몇 가지 옵션이 있지만 이에 국한되지는 않습니다. 트리거를 사용하면 레코드가 변경 될 때마다 (삽입, 업데이트, 삭제) 프로그래밍 로직 (트리거 또는 외부 데이터베이스 객체에 직접 저장 됨)을 실행할 수 있습니다. 스트림은 리두 로그를 모니터링하여 변경 사항을 추적하는 데 사용할 수 있습니다. 가장 쉬운 방법 중 하나는 디폴트 값이 sysdate 인 날짜 컬럼을 추가하는 것입니다.
user_objects 뷰에서 last_ddl_time을 쿼리하여 테이블 정의가 변경되었는지 확인할 수 있습니다.
트리거 또는 구체화 된 로그 (전체 해킹)를 사용하지 않으면 테이블의 특정 행이 업데이트 된시기를 알 수 없습니다.
거래 내외에서 이야기하고 있습니까? 우리는 우리의 DML 성공 여부를 확인하기 위해 SQL의 %의 ROWCOUNT 같은 것들을 사용할 수 있습니다 우리의 프로그램 내에서
...
SQL> set serveroutput on size unlimited
SQL> begin
2 update emp
3 set job = 'SALESMAN', COMM=10
4 where empno = 8083;
5 dbms_output.put_line('Number of records updated = '||sql%rowcount);
6 end;
7/
Number of records updated = 1
PL/SQL procedure successfully completed.
SQL>
는 또한 우리가 발견 SQL의 % (또는 SQL %의 NOTFOUND)을 테스트 할 수 있습니다.
트랜잭션 외부에서 레코드가 변경되었는지 여부를 확인하기 위해 ORA_ROWSCN을 모니터링 할 수 있습니다.
SQL> select ora_rowscn from emp
2 where empno = 8083
3/
ORA_ROWSCN
----------
83828715
SQL> update emp
2 set comm = 25
3 where empno = 8083
4/
1 row updated.
SQL> commit
2/
Commit complete.
SQL> select ora_rowscn from emp
2 where empno = 8083
3/
ORA_ROWSCN
----------
83828780
SQL>
기본적으로 ORA_ROWSCN은 블록 수준에서 설정됩니다. 낮은 레벨에서 추적하려면 ROWDEPENCIES 키워드로 테이블을 작성해야합니다.
이들은 임시 솔루션입니다. 능동적 인 모니터링을 원한다면 어떤 형태의 로깅을 구현해야합니다. 트리거를 사용하여 로그 레코드를 작성하는 것이 일반적인 해결책입니다. Enterprise Edition을 사용하는 경우 Fine Grained Auditing을 고려해야합니다. Dan Morgan의 라이브러리는 useful demo of how to use FGA to track changes입니다.
안녕하세요, APC, URL 주셔서 감사합니다 :) –
- 1. 저장하기 전에 레코드가 있는지 확인하십시오.
- 2. Oracle 데이터베이스의 상태를 확인하십시오.
- 3. Android SQL : 데이터베이스에 레코드가 존재하는지 확인하십시오.
- 4. ASP.NET MVC : 편집 레코드가 허용되는지 확인하십시오 (소유권)
- 5. 레코드가 (배열 배열에서) Rails에 존재하지 않는지 확인하십시오.
- 6. 액세스 하위 매크로에 저장된 레코드가 있는지 확인하십시오.
- 7. 시간이 업데이트되는지 확인하는 자바 스크립트
- 8. Oracle : 다른 테이블에 행이 있는지 확인하십시오.
- 9. oracle 데이터베이스를 사용할 수 있는지 확인하십시오.
- 10. 2 개의 파라미터를 기반으로 MySQL 레코드가 존재하는지 확인하십시오.
- 11. LINQ to SQL의 결과 집합을 반환하기 전에 레코드가 있는지 확인하십시오.
- 12. 하나의 레코드가 포함 된 경우 Oracle REFR 커서 패치가 중단됩니다.
- 13. 코드 내에서 내 프로세스가 실행중인 사용자를 확인하십시오
- 14. PreRequestHandlerExecute 내에서 .asmx 파일의 클래스 이름을 확인하십시오.
- 15. javascript/IE 6/7 : iframe 내에서 확인하십시오.
- 16. 내 앱 내에서 Activity가 호출되었는지 확인하십시오.
- 17. 시간 간격 내에서 단일 탭 제스처를 확인하십시오.
- 18. ORACLE 즉시 실행 내에서 DDL 문 일괄
- 19. Oracle PL/SQL 내에서 PHP 함수 호출
- 20. MVVM - 레코드가
- 21. 어떤 레코드가 효과적으로 삭제되었는지 알아내는 방법은 무엇입니까?
- 22. Oracle Query
- 23. 플래시 객체가 JavaScript 내에서 메서드를 가지고 있는지 확인하십시오.
- 24. NSString을 구문 분석하여 Xcode 내에서 올바르게 구성된 JSON 문자열을 확인하십시오.
- 25. VB.net의 Oracle datetime
- 26. Oracle DB에서 정렬 하시겠습니까?
- 27. 그리드에 레코드가 없으면 database.how를 확인하지 않고 "레코드가 없습니다"라고 말해야합니다.
- 28. 링크를 클릭하면 레코드가 삭제됩니다.
- 29. datareader의 레코드가 NULL인지 확인합니다.
- 30. 마크 레코드가 삽입되었습니다.
안녕하세요, 저는 이미 마지막 옵션을 사용하고 sysdate의 기본값으로 날짜 열을 추가합니다. 다른 옵션이 있는지 궁금해 할뿐입니다. 감사합니다! –