더북(TheBook)

그럼 프로그램 객체를 만들어 보자. DBMS_JOB 패키지에서 사용했던 ch15_job_test_proc 프로시저로 CREATE_PROGRAM을 호출하는 간단한 익명 블록을 만들어 보자.

입력

    BEGIN
       DBMS_SCHEDULER.CREATE_PROGRAM (
            program_name => 'my_program1',
            program_type => 'STORED_PROCEDURE',
            program_action => 'ch15_job_test_proc ',
            comments => '첫번째 프로그램');
    END;

결과

    익명 블록이 완료되었습니다.

성공적으로 수행되었고 DBMS_JOB 패키지와는 다르게 별도로 COMMIT문을 실행할 필요는 없다. 간략히 설명하면 실제로 수행될 ch15_job_test_proc 프로시저를 program_action 매개변수에 넣었고, 프로시저를 수행하므로 program_type에는 ‘STORED_PROCEDURE’를 넣었다. program_name 매개변수 값은 임의로 정하면 되고 comments에는 이 프로그램 객체에 대한 설명을 명시했다. 나머지 매개변수들은 생략했으므로 디폴트 값이 적용될 것이다. 이렇게 생성한 프로그램 객체 정보는 USER_SCHEDULER_PROGRAMS 시스템 뷰를 참조하면 알아낼 수 있다.

입력

    SELECT program_name, program_type, program_action, number_of_arguments, enabled, comments
      FROM USER_SCHEDULER_PROGRAMS;

결과

생략했던 number_of_arguments와 enabled 항목은 디폴트 값이 적용됐음을 알 수 있다. 특히 enabled은 디폴트 값이 false여서 비활성 상태인데, 명시적으로 활성 상태로 만들어야만 프로그램 객체를 사용할 수 있다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.