2013-03-08 2 views
0

오라클 버전 : 10g 저장 프로 시저가 있는데 저장 프로 시저가 몇 번 실행되었는지 알고 싶습니다. 성공 했습니까?저장 프로 시저 로그 정보

+0

나는이 일을 할 수있는 모든 것이 있다고 믿지 않습니다. SP는 무엇을합니까? 그것이 실행 된 후에 테이블의 날짜를 변경 만 할 수는 없습니까? 또는 유지 관리 SP 인 경우 일부 기록을 기록 할 것으로 생각되면 작업으로 설정하는 것이 좋습니다. –

답변

3

Oracle은 기본적으로이 정보를 저장하지 않습니다.

audit execute procedure on my_stored_proc; 

(패키지 또는 어떤 my_stored_proc가 될 수 있습니다) :

당신은 프로 시저를 실행, 절차 적 호출의 감사를 활성화하기 위해 AUDIT 문을 사용하여 감사에 의해 수 있습니다. 그들이 사물 일지라도, 감사하는 적절한 시스템 권한이 있어야합니다. 이는 감사가 오버 헤드이며 감사 추적 자체에 대한 액세스가 (이해하기 쉬운 이유로) 엄격하게 제어되기 때문입니다.

그래서 AUDIT는 아마도 당신이 찾고있는 것이 아닙니다. 게다가 그것은 당신이 원하는 낮은 수준의 물건을 제공하지 않을 것입니다 ("성공 했습니까?"). 프로 시저에 계측 도구를 구축 할 수있는 옵션이 제공됩니다. 디버깅은 괜찮은 추적으로 훨씬 쉽기 때문에 일반적으로 좋은 생각입니다.

오라클은 이에 대한 내장 라이브러리를 제공하지 않습니다 (솔직하게 보면 놀랍지 만 거기에 있습니다). 나만의 로거를 만드는 것은 아주 쉽습니다. 또는 Tyler Muth의 Logger 프로젝트를 체크 아웃하십시오. Find it here. (보증 내용이 없음을 의미하지는 않습니다.)

0

oracle 데이터베이스에서이 작업을 수행 할 방법이 없습니다. 나는 또한 그들이 당신에게 테이블에 정보를 기록 할 패키지를 제공하지 않는다는 사실에 충격을 받았다. 그들은 열

  • 사용자 ID
  • 로그 수준
  • 타임 스탬프
  • 명령

로깅을위한 저장 프로 시저를 사용하여 자신의 패키지를 구현 다음 제공되는 기본 로깅 패키지를 제공 할 수 있습니다.