2013-02-15 3 views
0

한 사용자가 프로 시저의 소스 코드를 변경하면 새 버전과 이전 버전의 프로 시저 간의 차이점을 찾아서 테이블에 저장하고 싶습니다.
다른 말로하면 추가, 수정 또는 삭제 된 행을 찾고 싶습니다.

"스키마에서 ddl 전에"트리거를 사용하고 all_source 뷰의 소스 코드와 ORA_SQL_TXT (sql_text) 함수가 제공 한 소스 코드를 비교하려고 시도했지만 소스 코드 ORA_SQL_TXT (sql_text) 함수에 의해 주어진 값은 줄 번호에 의해 정렬되지 않습니다.오라클 : 두 버전의 프로 시저 비교

+0

DIFF 도구 (WinDIFF, KDIFF 등)를 사용하지 않는 이유는 무엇입니까? –

+0

아니요 외부 도구없이 솔루션이 필요합니다. – Maxii

+2

스키마 트리거에서 DDL을 사용하여 all_source에서 이전 버전을 읽고 쓰고 스키마 트리거에서 after ddl을 사용하여 all_source에서 새 버전을 읽고 쓰는 방법은 어떻습니까? –

답변

1

SELECT .. FROM USER_SOURCES AS OF TIMESTAMP(time you want) WHERE ... ORDER BY LINE;을 사용하십시오. 이것은 이전에 테이블을 제공 할 것이므로, MINUS을 사용하거나이를 다른 테이블에 넣고 원하는대로 할 수 있습니다.

일부 변경 사항에 따라 최근 변경 사항 만 저장하지만 작은 실수는 절대적으로 멋진 기능입니다.

관련 문제