2011-05-15 2 views
-1

매개 변수가있는 ref curser를 만들고 plsql 함수에서이 커서를 반환하려면 어떻게해야합니까? 이 코드 같은 것을 작성하는 시도 ..매개 변수가있는 ref curser를 만드시겠습니까?

create or replace function get_ref_cur(id in number) return sys_refcursor is 
ref_curs sys_refcursor; 
begin 
    open ref_curs(std_id number) for select * from student where id = std_id; 
return ref_curs; 
end; 

하지만이 코드는 작동하지 않았다.

+0

질문 1 개당 충분합니까? 그리고 "작동하지 않음"은 좋은 문제 설명이 아니며, 실행/실행하지 않는 것을 지정하십시오 (컴파일에 실패합니까?, 잘못된 데이터를 반환합니까?, ...) – Mat

+0

"ID"및 "STD_ID"란 무엇입니까? ID가 표 열이면 함수 매개 변수의 이름으로 사용하지 않아도됩니다. STD_ID가 테이블 열이면 "(std_id number)"는 무엇을하려고합니까? –

+0

id는 테이블 열이고 std_id는 커서 매개 변수입니다. open ref_curs (std_id number)를 쓸 때 커서의 매개 변수에 문제가있어서 컴파일러에서 구문 오류가 발생합니다. – sahar

답변

1

일반 sys_refcursor에 매개 변수를 적용 할 필요가 없습니다.

create or replace function get_ref_cur(id in number) return sys_refcursor is 
ref_curs sys_refcursor; 
begin 
    open ref_curs for select * from student where std_id = id; 
return ref_curs; 
end;