제품 가격표에 수정 날짜가 있습니까? 아니면 마지막으로 필드가 수정 되었습니까? 그렇다면 업데이트하고 있는지 확인하십시오.
또한 스크립트를 사용하는 경우 에코를 설정하고 스풀을 로그 파일로 설정해야합니다. 이 파일과 같은 디렉토리에서 SQLPLUS로
-- updates.sql
set serveroutput on
set echo on
WHENEVER SQLERROR EXIT SQL.SQLCODE
spool on
spool updates.log
-- put updates here
commit;
spool off
로그인 및 사용하여 실행 : 스크립트 같은 것을 보일 것입니다 @를
updates.sql updates.log 파일을 실행할 때마다 문이있을 것이다.
개별 업데이트 문 목록에서 총계를 얻으려면 각 업데이트 후에 SQL % ROWCOUNT를 검사해야합니다. 비슷해 (안된)
declare
l_total pls_integer := 0;
begin
update product set x = 'foo' where y='bar';
l_total := l_total + SQL%ROWCOUNT;
update product set x = 'blah' where y='someval';
l_total := l_total + SQL%ROWCOUNT;
commit;
dbms_output.put_line(l_total);
end
/
이 기본 PL/SQL 익명 블록이며, 상기 스풀 전략을 사용할 수있다.
마지막으로 메시지 필드, 로그 날짜 시간, 일부 컨텍스트 필드 (메시지가 오는 위치 등), 유형 (msg, 로그, 오류 등)을 포함하는 기본 로그 테이블을 설정하는 것이 일반적입니다. 로그 테이블에 삽입 (자율 트랜잭션)을 처리하고 통계 등을 추적해야 할 때마다 로그 프로 시저를 사용하는 프로 시저 (dbms_output은 매우 제한적 임). 당신의 환경은 이미 이와 비슷한 것을 가지고있을 것입니다. 단지 그것을 찾아야 만합니다 (또는 회사의 수석 개발자에게 물어보십시오).
오늘 업데이트를 위해 첫 번째 예를 사용했는데 완벽하게 작동했습니다. 또한 다음 팀 회의에서 로그 테이블 아이디어를 가져와야합니다. 아직 가지고 있지 않다면 가지고있는 것이 좋을 것입니다. – Logarr
@Logarr 잘 듣고 싶습니다. 로그 테이블 및 절차의 간단한 예제가 필요하면 http://stackoverflow.com/questions/4919437/dbms-output-putline을 참조하십시오. – tbone