지난번 문의 드렸던 내용입니다.
답변 주셨구요..
근데.. 아래와 같이 하니 ORA-00904: invalid identifier 에러가 뜹니다.
이유는 도무지 모르겠습니다.
CREATE OR REPLACE PROCEDURE PARKDVL.PROC_TEST_LIST_SEARCH (
sType in varchar2,
sYear in varchar2,
sSType in varchar2,
sSubject in varchar2,
O_RESULT out TYPES.CURSORTYPE
)IS
ssql varchar(4000);
BEGIN
if sType = 'S' then
ssql := 'SELECT t_code, t_year, t_term, t_title, t_start_date, t_start_time,
t_end_time, t_continue, t_place, (select count(*) from OnlineTest_user
where t_code = OnlineTest_Info.t_code and t_year = OnlineTest_Info.t_year
and t_term = OnlineTest_Info.t_term and t_subjcd = OnlineTest_Info.t_subjcd) t_appcnt,
(select count(*) from OnlineTest_user
where t_code = OnlineTest_Info.t_code and t_year = OnlineTest_Info.t_year
and t_term = OnlineTest_Info.t_term and t_subjcd = OnlineTest_Info.t_subjcd and U_CONTINUE = ''y'') t_usecnt,
(select count(*) from OnlineTest_user
where t_code = OnlineTest_Info.t_code and t_year = OnlineTest_Info.t_year
and t_term = OnlineTest_Info.t_term and t_subjcd = OnlineTest_Info.t_subjcd) t_passcnt
FROM OnlineTest_Info where t_active = ''y''';
if sYear = 'All' then
ssql := ssql;
else
ssql := ssql || 'and q_year = sYear' ;
end if;
if sSType = 'All' then
ssql := ssql;
else
ssql := ssql || ' and t_type = sSType';
end if;
if sSubject = 'All' thne
ssql := ssql;
else
ssql := ssql || ' and T_SUBJCD = sSubject';
end if;
open O_RESULT
for ssql;
end if;
END PROC_TEST_LIST_SEARCH;
/
위의 경우 각각 sYear, sSType, sSubject를 인식하지 못하는것 같습니다. 자꾸 그 부분에 ORA-00904: invalid identifier 에러가 나는 걸로 봐서는요..
뭐가 잘못된 건가요??
그리고 혹시 toad에서 제가 작성한 프로시저를 실행하고 쿼리문을 찍어보거나 뭔가 디버깅 하는 방법 혹시 아시면 좀 알려주세요.. ^^
제가 오라클이 처음이라서 많이 힘듭니다. 잘 부탁드립니다~^^
미리 감사해요~