내 질문은 꽤 기본이지만 저장 프로 시저에 대한 완전한 초보자이며 빨리 돌아갈 필요가 있습니다. 어떤 도움 지금, 아래 오라클 저장 프로 시저
은 우리가 가지고있는 현재 저장 프로 시저입니다PROCEDURE get_something(
type IN VARCHAR2,
value IN VARCHAR2,
i_type OUT VARCHAR2,
i_id OUT VARCHAR2)
AS
TYPE t_array
IS
TABLE OF VARCHAR2(320);
identifers t_array;
column_name VARCHAR2(32);
info_qry VARCHAR2(500);
top_row_qry VARCHAR2(500);
BEGIN
identifers := t_array('ABC');
column_name := get_column_name(type);
info_qry := 'select INS.i_id, INS.model from table1 INS where INS.'||column_name||'='''||value||''' order by INS.version desc';
top_row_qry := 'select * from ('||info_qry||') where rownum<=1';
EXECUTE immediate top_row_qry INTO i_id, i_type;
EXCEPTION
WHEN OTHERS THEN
i_id := NULL;
i_type := NULL;
END get_something;
을 이해할 수있을 것이다 I이 절차를 실행하면, 그것은 때문에 ROWNUM 상태로 나에게 하나 개의 레코드를 제공합니다.
내 요구 사항은 top_row_qry에서 ROWNUM을 제거하므로 여러 행이 될 것입니다 결과입니다.
나는 어느 내가 절차 자체에 약간의 비교를 위해 변수 중 하나를 사용에서 어떤 변수로 각 필드를 저장할.
그래서 기본적으로 내가 이상 나중에 반복하는 내가 할 수있는 결과를 저장하고 값 목록과 비교합니다.
또한,이 절차 자체에 값 목록을 정의해야합니다. 다음과 같은
뭔가 :
list_of_vals:= t_array('ABC','XYZ');
이 사람이 나를 도울 수있다.
https://www.techonthenet.com/oracle/loops/cursor_for.php – OldProgrammer
예 - 솔루션은 하나 개 이상의 행이 PL/SQL – Pat
에서 조작 할 때 커서를 사용하는 것입니다 컬렉션에 '대량 수집'사용 –