질문이 조금 이상합니다. 그러나 사용자가 주석을 줄 때 테이블의 업데이트 만 허용되는 방식을 찾고 있습니다. 주석은 일반 테이블을 갱신 할 때 두 번째 감사 테이블에 저장되어야합니다.
"update table set ..."을 실행할 때 사용자가 어떻게 주석을 줄 수 있는지는 오라클에 없다고 생각합니다.
그래서 사용자가 매개 변수로 문과 설명을 전달할 수있는 자체 프로 시저를 만듭니다. 이 절차가없는 업데이트는 트리거에 의해 방지됩니다.오라클 : 업데이트 만 허용됨
create or replace
PROCEDURE Update_Table(stmt varchar2, comment varchar2) AS
BEGIN
Insert into audit_table values(stmt, comment);
Execute immediate stmt;
END Update_Table;
저는이 솔루션에 만족하지 않습니다. 어쩌면 해결책이 훨씬 간단해질 수도 있습니다.
"주석"열을 포함하고 주 테이블에서 업데이트를 수행하는 트리거 대신에 감사 테이블에 주석을 삽입하는보기는 어떻습니까? 그런 다음 테이블에 대한 업데이트 권한을 취소 할 수 있으며 모든 업데이트는 뷰를 통과해야합니다. 그런 방아쇠가 가능한지 모른다. –
그래도 위와 같은 절차가 필요합니까? – Maxii
절차가 없으며 트리거 만 있습니다. –