O erro está na duplicação dos dados. Não sei porque no dbms_output.put_line ele mostra o mesmo dado repetidamente como eu mostro abaixo:
Resultado da execução:
INICIO:
FINAL LOOP: MARIO JOSE DE SOUZA MARIO JOSE DE SOUZA
FINAL LOOP: MII MII
FINAL LOOP: 100097000 100097000
INICIO:
FINAL LOOP: YARA LUCIA MARINO YARA LUCIA MARINO
FINAL LOOP: MII MII
FINAL LOOP: 100097095 100097095
INICIO:
FINAL LOOP: YARA LUCIA MARINO YARA LUCIA MARINO
FINAL LOOP: MII MII
FINAL LOOP: 100097095 100097095
INICIO:
FINAL LOOP: YARA LUCIA MARINO YARA LUCIA MARINO
FINAL LOOP: MII MII
FINAL LOOP: 100097095 100097095
Por favor, alguém poderia me ajudar? Como eu resolvo essa duplicação dos dados? ele deveria mostrar somente um e pular para o proximo já que não tem registro duplicados.
declare
type CursorType is REF CURSOR; -- ESPECIFICA UM TIPO "REF CURSOR"
l_cursor CursorType; -- DEPOIS DECLARA UMA VARIÁVEL DESSE TIPO
type rec_TMP_STTM_CUST_ACCOUNT is record
( AC_DESC VARCHAR2(105),
CUST_AC_NO VARCHAR2(20),
BRANCH_CODE VARCHAR2(3),
AC_DESC1 VARCHAR2(105),
CUST_AC_NO1 VARCHAR2(20),
BRANCH_CODE1 VARCHAR2(3) );
rec rec_TMP_STTM_CUST_ACCOUNT;
begin
-- Montagem da query dinâmica executada
v_sql := 'select distinct ' || selectColumns1||', '||selectColumns2 || ' from FLXSTG.' || tableName || ' t1, FLXSTG.' || tableName || ' t2 Where ' || v_result||' and t1.BLOCO_CD ='''||blockCode||''''||
' and t2.BLOCO_CD ='''||blockCode||''''||
' and t1.DT = to_date('''||insertDate||''',''yyyy-mm-dd'') '||
' and t2.DT = to_date('''||p_data||''',''yyyy-mm-dd'') ';
--dbms_output.put_line('sql: '||v_sql);
--return;
OPEN l_cursor FOR v_sql;
LOOP
FETCH l_cursor INTO rec;
EXIT WHEN l_cursor%notfound;
--v_inicio :=1;
LOOP
dbms_output.put_line('INICIO: ');
dbms_output.put_line('FINAL LOOP: '||rec.DESC||' '||rec.DESC1);
dbms_output.put_line('FINAL LOOP: '||rec.BRN||' '||rec.BRN1);
dbms_output.put_line('FINAL LOOP: '||rec.CUST||' '||rec.CUST1);
--RETURN;
V_CONT := V_CONT + 1;
IF V_CONT = 1 THEN
EXIT;
END IF;
END LOOP;
END LOOP;
end;