oracle에서 작업 만들기 (테이블 공간 크로스)
3212 단어 데이터베이스
환경: PLSQL
단계:
1. 저장 프로세스 설정(TableSpace의 SCOTT 아래)
create or replace procedure scott.PRO_InsertFacility is
begin
/* */
insert into SCOTT.T_MTFACILITY
select t2.proid,extract(year from sysdate),extract(month from sysdate),1,sscount
from (select pjnm,count(pjnm) as sscount from SDE. group by pjnm) t1
inner join SCOTT.T_PROJECTINFO t2 on t1.pjnm=t2.projectname;
commit;
/* */
insert into SCOTT.T_MTFACILITY
select t2.proid,extract(year from sysdate),extract(month from sysdate),2,sscount
from (select pjnm,count(pjnm) as sscount from SDE. group by pjnm) t1
inner join SCOTT.T_PROJECTINFO t2 on t1.pjnm=t2.projectname;
commit;
/* */
insert into SCOTT.T_MTFACILITY
select t2.proid,extract(year from sysdate),extract(month from sysdate),3,sscount
from (select pjnm,count(pjnm) as sscount from SDE. group by pjnm) t1
inner join SCOTT.T_PROJECTINFO t2 on t1.pjnm=t2.projectname;
commit;
/* */
insert into SCOTT.T_MTFACILITY
select t2.proid,extract(year from sysdate),extract(month from sysdate),4,sscount
from (select pjnm,count(pjnm) as sscount from SDE. group by pjnm) t1
inner join SCOTT.T_PROJECTINFO t2 on t1.pjnm=t2.projectname;
commit;
/* */
insert into SCOTT.T_MTFACILITY
select t2.proid,extract(year from sysdate),extract(month from sysdate),5,sscount
from (select pjnm,count(pjnm) as sscount from SDE. group by pjnm) t1
inner join SCOTT.T_PROJECTINFO t2 on t1.pjnm=t2.projectname;
commit;
end PRO_InsertFacility;
2. 현재 실행 중 오류가 발생했습니다.
Compilation errors for PROCEDURE SCOTT.PRO_INSERTFACILITY
Error: PL/SQL: ORA-00942: 테이블 또는 뷰에 Line: 34 Text: from(select pjnm,count(pjnm) as sscount from SDE가 존재하지 않습니다.오수 저수지 그룹 by pjnm)t1
Error: PL/SQL: SQL Statement ignored Line: 32 Text: insert into SCOTT.T_MTFACILITY
현재 사용자가 SDE 프로젝트에서 오수 저수지표에 접근할 수 있는 select 권한이 없기 때문에 권한을 부여한 후에 저장 프로세스를 다시 실행해야 성공할 수 있습니다.
grant select on SDE. to scott
3. oracle 작업 만들기
declare JOB_InsertFacility number;
begin
dbms_job.submit(JOB_InsertFacility,'SCOTT.PRO_InsertFacility;',TRUNC(LAST_DAY(SYSDATE))+1,'TRUNC(LAST_DAY(SYSDATE) + 1)');
commit;
end;
설명: 1) JOBInsertFacility: 이 작업의 작업 대기열 번호
2)'SCOTT.PRO_InsertFacility;':수행된 작업의 이름 및 입력 매개변수
3) TRUNC(LAST DAY(SYSDATE)+1: 작업 수행 시간
4)'TRUNC(LAST DAY(SYSDATE)+1)': 작업 수행 시간 간격(지난번 실행이 끝나고 다음 실행이 시작되는 시간 간격을 가리키며 interval이null로 설정되면 이 job가 실행된 후 대기열에서 삭제됩니다. 만약에 이 job가 주기적으로 실행되어야 한다면'sysdate+m'로 표시해야 합니다.)
4. 질의 작업
select * from sys.user_jobs
5. 작업 수행
begin
dbms_job.run(21);
commit;
end;
주의: 21은 조회된 작업 번호입니다
6. 작업 중지
begin
dbms_job.remove(21);
commit;
end;
PS: 참조 자료
1. http://www.blogjava.net/pdw2009/archive/2007/02/09/99002.html
2. http://www.cnblogs.com/lumnm/archive/2012/08/31/2666155.html
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
SQLite의 query로 망설임이것은 내가 처음 안드로이드 응용 프로그램 개발에서 망설이고, 그 후 해결 된 방법을 비망록으로 철자하고 있습니다. java에서 SQLite를 이용한 애플리케이션을 작성하는 동안 EditText에 입력된 item이 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.