프로시져 생성오류- 오브젝트가 부당합니다 에러 0 2 16,105

by 쭌스 [2009.05.14 23:43:09]


OS : WIN XP

ORACLE VER : 9i

강좌에 있는 다음의 프로시져를 생성 하려고 합니다.

CREATE OR REPLACE PROCEDURE Table_Test
(v_department_id IN employees.department_id%TYPE)

IS

    TYPE empid_table IS TABLE OF employees.employee_id%TYPE
    INDEX BY BINARY_INTEGER;
   
    TYPE empname_table IS TABLE OF employees.first_name%TYPE
    INDEX BY BINARY_INTEGER;
   
    TYPE sal_table IS TABLE OF employees.salary%TYPE
    INDEX BY BINARY_INTEGER;
   
    empid_tab empid_table;
    empname_tab emname_table;
    sal_tab sal_table;   
    i BINARY_INTEGER:= 0;

BIGIN
    DBMS_OUTPUT.ENABLE;
    FOR emp_list IN (select employee_id, fist_name, salary from employees where department_id = v_department_id)
    LOOP
    i:= i+1  
    empid_tab(i):= emp_list.employee_id;
    empname_tab(i):= emp_list.first_name;
    sal_tab(i):= emp_list.salary;
   
    END LOOP;
   
    FOR cnt IN 1..i LOOP
   
    DBMS_OUTPUT.PUT_LINE (’사원번호’|| empid_tab(cnt));
    DBMS_OUTPUT.PUT_LINE (’사원이름’|| empname_tab(cnt));
    DBMS_OUTPUT.PUT_LINE (’사원연봉’|| sal_tab(cnt));
   
    END LOOP;
   
END;

프로시져를 생성을 하면 경고: 컴파일 오류와 함께 프로시져가 생성되었습니다 라는 메시지가 나타나고

프로시져를 실행을 하면

ORA-06550:줄 1, 열 7:PLS-00905: SYS.TABLE_TEST 오브젝트가 부당합니다

ORA-06550:줄 1.열7:PL/SQL: Statement ignored

에러가 발생합니다.

여러군데에서 알아보고 있는데 아직 해결책을 잡지 못해서 글을 올립니다.

해결책을 알려 주십시오.

by 마농 [2009.05.15 09:00:23]
에러메시지가 sys 유저로 되어 있네요. sys 유저로 프로시져를 생성하신것 같네요.
employees테이블의 소유자로 프로시져를 생성하시고 실행해보세요.

by 쭌스 [2009.05.15 09:49:32]
한번 소유자 유저로 다시한번 실행 시켜 볼께요.
감사합니다.
댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입