나는 수백만 개의 행을 처리하는데 몇 시간이 걸리기 때문에 프로세스의 상태에 대한 아이디어를 얻으려는 피드백이 필요합니다. 실행이 완료된 후에 만 출력을 사용할 수 있으므로 저장 프로 시저로부터 실시간 피드백을받을 수 없습니다. 어떤 해결책?저장 프로 시저의 출력을 표시하는 방법은 무엇입니까?
1
A
답변
3
두 가지 해결책이 있습니다.
하나는 설명의 로그에 기록하는 것입니다. 파일 (writing out with UTL_FILE) 또는 테이블 (autonomous transactions 사용)을 사용하면 주 트랜잭션에 영향을주지 않고 레코드를 다른 세션에서 볼 수 있습니다.
다른 해결책은 DBMS_APPLICATION_INFO.SET_SESSION_LONGOPS를 사용하여 V $ SESSION_LONGOPS 뷰에 기록하는 것입니다. Find out more
로깅은 항상 장기 실행 백그라운드 절차에서 좋은 생각입니다. 무언가 잘못되면 로그가 정보의 유일한 원천이됩니다.
2
다른 테이블 (프로 시저가 실행되는 동안 선택할 수있는 테이블)에 쓰는 ReportStatus 프로 시저를 가질 수 있습니다.
주 프로 시저와 독립적으로 커밋 할 수 있도록 PRAGMA AUTONOMOUS_TRANSACTION이 필요합니다.
예 : longops 링크에 대한
CREATE OR REPLACE PROCEDURE ReportStatus(status NUMBER)
AS
PRAGMA AUTONOMOUS_TRANSACTION;
BEGIN
INSERT INTO StatusTable VALUES(SYSDATE, status);
COMMIT;
END ReportStatus;
/
관련 문제
- 1. 저장 프로 시저의 여러 출력을 임시 테이블
- 2. 저장 프로 시저의 출력을 디스크에 저장하는 방법
- 3. Crystal Reports에서 저장 프로 시저의 예외 메시지를 표시하는 방법은 무엇입니까?
- 4. 저장 프로 시저의 값을받는 방법은 무엇입니까?
- 5. 저장 프로 시저의 진행
- 6. 저장 프로 시저의 실행 시간
- 7. 저장 프로 시저의 형식
- 8. 저장 프로 시저의 오류
- 9. 저장 프로 시저의 오류
- 10. 저장 프로 시저의 오류
- 11. 저장 프로 시저의 대안
- 12. 저장 프로 시저의 SqlBulkCopy
- 13. 저장 프로 시저의 이름
- 14. 저장 프로 시저의 트랜잭션
- 15. 저장 프로 시저의 저장 프로 시저 표시
- 16. 저장 프로 시저의 IF 조건
- 17. SQLPlus에서 저장 프로 시저의 올바른 구문은 무엇입니까?
- 18. MSSQL 저장 프로 시저의 변수 구문은 무엇입니까?
- 19. 저장 프로 시저의 구문 오류
- 20. 저장 프로 시저의 값 인쇄
- 21. 저장 프로 시저의 임시 테이블
- 22. 저장 프로 시저의 정의 자
- 23. 저장 프로 시저의 버전 변경
- 24. Oracle 저장 프로 시저의 오류
- 25. 저장 프로 시저의 결과를 C#
- 26. 저장 프로 시저의 테이블 스캔
- 27. 저장 프로 시저의 예외 처리
- 28. Oracle 저장 프로 시저의 프롬프트
- 29. 저장 프로 시저의 FREETEXT 문제
- 30. 저장 프로 시저의 시간 확인
+1 감사 – tbone