0
column3
값을 가진 이라는 사용자 지정 레코드 유형을 만들었습니다. 내가 Table1
의 값으로 record_object(i).column3
을 비교하려는 테이블/레코드에서 값 가져 오기
OPEN cur_record FOR query;
BEGIN
LOOP
FETCH cur_record BULK COLLECT INTO record_object;
FOR i IN 1..record_object.count;
END LOOP;
EXIT WHEN cur_record%notfound;
END LOOP;
END;
로이 기록은 채워집니다. 이 테이블은 그리 크지 않기 때문에 무언가를 만들려고했다.
TYPE RTable1 IS RECORD
(
column1 varchar2(10),
column2 varchar2(10)
);
Type TTable1 IS TABLE OF RTable1 INDEX BY BINARY_INTEGER;
record_table1 TTable1;
이 레코드는 쿼리를 통해 가져 오게된다. 이제는 record_object(i).column3
과 record_table1.column2
을 비교하고 싶습니다. 2 중첩 된 루프를 사용하고 싶지 않습니다. 뭔가 구현할 수있는 해시 테이블과 같은 방법이 있습니까 Table1
그 때 record_object(i).column3
이 있는지 확인해야합니다, 그 특정 행/인덱스를 반환?
피씨 : 구문 오류는 무시하십시오. 여기에 게시하는 동안 SQL을 작성합니다.
SQL 대신 PL/SQL에서이 작업을 수행하는 이유는 무엇입니까? 분명히 "비교"는 여러 가지 연산을 의미 할 수 있지만 JOIN은 여기에있는 모든 것보다 훨씬 빠를 것입니다. – APC