흠... 이게 패키지 전체소스인가요?
RUNNING_FROM, RUNNING_TO 변수가 선언되어 있지 않군요.
이러면 에러날텐데...
dbms_output.print_line() 을 이용해서 매개변수들의 값을 한번 찍어 보시는게 어떨까요...
경험상 대부분은 초기화되지 않은 인수가 잘못전달되어 결과가 안나오는 경우가 많더군요.
>>travolta 님께서 쓰시길<<
:: 우선 답변 감사드립니다.
::
:: 다시 질문드립니다.
::
:: CREATE OR REPLACE PACKAGE "YOOSUNGTNS"."PKG_NOTICE" AS
:: TYPE T_CURSOR IS REF CURSOR ;
:: PROCEDURE SP_GETDATA (A_MEMNO IN NOTICE.MEM_NO%TYPE, A_SEQ IN NOTICE.SEQ%TYPE, IO_CURSOR IN OUT
:: T_CURSOR);
:: PROCEDURE procNotice_Next (MemNo IN NOTICE.MEM_NO%TYPE, sno IN NUMBER, IO_CURSOR IN OUT T_CURSO
:: R);
:: END PKG_NOTICE;
::
:: 패키지 선언부에 위와같이 선언하고 패키지 몸체에
::
:: CREATE OR REPLACE PACKAGE BODY "YOOSUNGTNS"."PKG_NOTICE" AS
:: PROCEDURE SP_LIST (TOP_SEARCH IN NUMBER, A_MEMNO IN NOTICE.MEM_NO%TYPE, IO_CURSOR IN OUT T_CURSO
:: R)
:: IS
:: V_CURSOR T_CURSOR;
:: BEGIN
:: OPEN V_CURSOR FOR
:: SELECT /*+index_desc(notice, notice_pk)*/
:: MEM_NO, SEQ, TITLE, CONTENT, IMPORTANT_VALUE, VISITED, IN_DATE
:: FROM NOTICE
:: WHERE TO_CHAR(SYSDATE,'YYYYMMDD')
:: BETWEEN TO_CHAR(RUNNING_FROM,'YYYYMMDD')
:: AND TO_CHAR(RUNNING_TO,'YYYYMMDD')
:: AND MEM_NO = A_MEMNO
:: AND ROWNUM <= TOP_SEARCH
:: ORDER BY IN_DATE DESC;
:: --커서를 리턴한다.
:: IO_CURSOR := V_CURSOR;
:: END SP_LIST;
:: END PKG_NOTICE;
::
:: 위와 같이 선언하여 사용하고 있습니다.
:: 혹시 리턴 되는 형식이 TYPE T_CURSOR IS REF CURSOR 로 정의되어 그러는 것이 아닌가 하는 생각을 해
:: 봅니다.
::
:: 그리고 지적해주신 힌트문법도 바꿔서 해 보았지만 똑같습니다.
::
:: 다시한번 답변 부탁드립니다.
::
:: 즐겁고 행복한 하루되시길...
::
:: >>firebird 님께서 쓰시길<<
::
:: :: 프로시져에서도 힌트 사용가능합니다.
:: :: 프로시져이기 때문에 그런것 같지는 않군요.
:: :: 그리고 아래 힌트 문법에서 컴마가 없는게 맞습니다.
:: ::
:: :: >>travolta 님께서 쓰시길<<
:: ::
:: :: :: 직접 쿼리하면 힌트가 먹혀 레코드가 나오는데
:: :: :: 프로시저로 하면 힌트가 먹질 않네요.
:: :: ::
:: :: :: 프로시저에서는 힌트적용이 안되나요?
:: :: ::
:: :: :: select /*+index_desc(notice,notice_pk)*/ mem_no, seq, title
:: :: :: from Notice where seq < sno and mem_no=MemNo
:: :: :: and rownum = 1 and to_char(sysdate,'YYYYMMDD') BETWEEN to_char(running_from,'YYYYMMDD')
:: AND
:: :: to
:: :: :: _char(running_to,'YYYYMMDD')
:: :: :: order by seq;
:: :: ::
:: :: :: sno와 memno를 파라메터로 받아서 실행하는 쿼리문입니다.
:: :: :: 답변 부탁드립니다.
|