매시간 데이터로 채워진 'Source'테이블을 내부 프로 시저로 가정합니다. 프로가 실행될 때마다 새로운 테이블 'NEW'를 채우는 프로 시저를 실행하고 싶습니다. 프로 시저가 실행될 때마다 항상 새 테이블의 원본 행이 있어야합니다. 새 테이블은 항상 이미 삽입 된 데이터를 항상 유지해야합니다. 내 말은 프로세스가 삽입 될 때마다 솔루션을 의미합니다 ... 새로운 다음 임시 테이블에 고유 값을 삽입하고, NEW를 삭제하고, 임시 직원 등에서 삽입하는 것은 도움이되지 않습니다.)plsql- 다른 테이블의 데이터로부터 테이블을 농축
-1
A
답변
1
내가 원하는대로 맞으면 새로운 레코드 만 SOURCE에서 NEW로 삽입하면되는 방법이 많습니다. 다음 중 일부는 다음과 같습니다.
1) NEW에 자동으로 삽입되는 SOURCE에 트리거를 작성하면 걱정할 필요가 없습니다.
2) SOURCE에서 새 행만 선택하려면이 명령문을 사용하십시오. 이 경우 두 테이블에서 동일한 기본 키가 있다고 가정합니다.
INSERT INTO NEW
SELECT * FROM SOURCE s1 WHERE NOT EXISTS (SELECT 1 FROM NEW n1 WHERE n1.key=s1.key)
3) 사용은보기 & MV 로그 기능을 구체화. 이것은 다소 복잡하기 때문에 오라클 문서 나 다른 리소스를 살펴 보는 것이 좋습니다.
4) SOURCE에 삽입하는 절차를 변경하여 NEW에 삽입하십시오.
물론 SOURCE에서 가능한 업데이트가있을 경우 수행 할 작업을 파악해야합니다. 원하는 경우 이러한 방법을 자세히 설명 할 수 있습니다.
0
투표 한 dsmoljanovic의 해결책. 절차 적 솔루션 (타임 스탬프 또는 시퀀스 포함)이 적합하지 않은 한 가지 이유는 커밋되지 않은 데이터입니다.
At 02:55:00: 75 rows are added to SOURCE and are timestamped '02:55:00'
At 02:55:30: The 75 row insert is committed
At 02:59:55: 100 rows are added to SOURCE and are timestamped '02:59:55'
At 03:00:00: Your process kicks off and selects from source
At 03:00:20: The 100 row insert is committed
이 과정은 그 100 개의 행을 볼 수 없습니다 (그들은 최선을 다하고하지 않기 때문에)하고 03 후 소인이 행을 보이는 경우 다음에 실행될 때, 그것은 그들을 놓칠 수 :
예를 가지고 00 : 00.
관련 문제
- 1. PLSQL Collections - 레코드 테이블을 사용하는 방법?
- 2. 하나의 MySQL 테이블을 다른 테이블의 값으로 업데이트하십시오.
- 3. 다른 두 테이블의 필드를 사용하여 테이블을 업데이트하십시오.
- 4. 웹 서비스를 통해 다른 위치에있는 다른 동일한 테이블의 테이블을 업데이트하십시오.
- 5. SQL Server 2005의 다른 데이터베이스에있는 다른 테이블의 테이블을 만듭니다.
- 6. 변수의 데이터로부터 평균 계산하기
- 7. 링크 테이블을 통해 한 테이블의 열에서 다른 테이블의 열을 다른 테이블로 복사
- 8. PLSQL 삽입
- 9. 테이블을 만들 때 기존 테이블의 열 유형을 사용할 수 있습니까?
- 10. 다른 여러 테이블의 외래 키가있는 테이블을 모델화하는 방법
- 11. 하나의 테이블을 별도의 데이터베이스에있는 다른 테이블의 데이터로 업데이트하는 방법은 무엇입니까?
- 12. 하나의 테이블을 쿼리하지만 다른 테이블의 관련 정보를 얻으려면 어떻게해야합니까?
- 13. jquery를 사용하여 다른 테이블의 행 뒤에 테이블을 삽입하는 방법
- 14. MySQL : 다른 테이블을 참조하는 한 테이블의 외래 키 두 개
- 15. SQLite 데이터베이스에서 다른 테이블의 열로 테이블을 추가 할 수 있습니까?
- 16. 다른 데이터 세트 테이블을 기반으로 데이터 세트 테이블의 행 선택
- 17. 어떻게 Microsoft 보고서 뷰어에서 다른 테이블의 셀에 테이블을 포함합니까?
- 18. MySQL : 한 테이블의 레코드를 계산 한 다음 다른 테이블을 업데이트하십시오.
- 19. MYSQL은 그 이름이 다른 테이블의 필드 값으로 저장된 테이블을 조인합니다.
- 20. : 다른 테이블의 각 행에 대해 함수를 반환하는 테이블을 호출
- 21. 다른 테이블의 위치를 선택하십시오
- 22. 화면의 데이터로부터 Struts에서 PDF를 생성하십시오.
- 23. PLSQL 피하기 코드 중복
- 24. 다른 MyISAM 테이블의 자동로드 테이블
- 25. SQL - 테이블 형식의 데이터로부터 생성 집계 통계
- 26. PLSQL : 나는이 같은 절차를
- 27. 행을 업데이트하고 다른 테이블을 삭제하십시오.
- 28. C# 및 PLSQL 커서
- 29. PLSQL 함수를 이해하려고 시도했습니다
- 30. Oracle/PLSQL 성능