PLSQL을 처음 사용합니다. 배열을 반복하는 프로 시저를 만들려고합니다.PLSQL : 루프를 사용하는 동안 저장된 프로 시저에 IF가있는 경우
나의 요구 사항은 테이블에 값 중 하나가 없으면 FAILARRAY에 추가해야하며, 그렇지 않으면 PASSARRAY에 추가해야합니다.
처리 된 데이터도 예외가 발견되지 않고 루프에서 벗어나 루프의 다음 값이 다시 반복되지 않습니다.
여기에 명령이 존재하는 경우 사용할 수있는 방법이 있습니까? 도와주세요.
CREATE OR REPLACE PROCEDURE SCHEMA.PR_VALIDATE
(
FILEARRAY IN STRARRAY,
PASSARRAY OUT STRARRAY,
FAILARRAY OUT STRARRAY,
)
IS
--DECLARE
fileName VARCHAR2 (50);
fileId NUMBER;
BEGIN
for i in 1 .. FILEARRAY.count
loop
fileName := FILEARRAY(i);
DBMS_OUTPUT.put_line (FILEARRAY (i));
SELECT FILEID into fileId FROM TABLE_NAME WHERE FILENAME=fileName;
end loop
END;
'FILEARRAY.exists (i) then'' ... end if;'를 사용할 수 있습니까? 이 방법에 대한 Oracle 설명서는 [여기] (http://docs.oracle.com/cd/B28359_01/appdev.111/b28370/collections.htm#CJAEFFID)입니다. –
사실 파일 배열에 값이 있는지 확인하고 싶지 않습니다. 데이터베이스 테이블에 항목이 있는지 확인해야합니다. 일반적인 경우에는 예외 데이터 처리를 사용하여 처리했습니다. 하지만 제 경우에는 배열에 8 개의 값이 있습니다. 그리고 세 번째 값에 대해서는 테이블에 데이터가 없습니다. 그것은 예외 블록에 올 것이다. 이제는 4 번째에서 8 번째 값을 반복 할 수 없을 것입니다. – Karthik