그럼 프로그램 객체를 만들어 보자. 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여서 비활성 상태인데, 명시적으로 활성 상태로 만들어야만 프로그램 객체를 사용할 수 있다.

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