SELECT * FROM (SELECT COUNT(*) QUANTIDADE, 'CONTA SUPERIOR A 12 CARACTERES' DESCRICAO FROM FINANCE.PLANOCONTAS WHERE LENGTH(PCTCNUMEROCONTA) > 12 UNION ALL SELECT COUNT(*), 'CONTAS DUPLICADAS APÓS TRANSFORMAÇÃO DO NÚMERO' FROM FINANCE.PLANOCONTAS A GROUP BY SUBSTR(A.PCTCNUMEROCONTA,1,2)||'.'||SUBSTR(A.PCTCNUMEROCONTA,5,3)||'.'||SUBSTR(A.PCTCNUMEROCONTA,9,3) HAVING COUNT(*) <> 1 ) WHERE QUANTIDADE <> 0 / DECLARE CURSOR CDADOS IS SELECT A.PCTCNUMEROCONTA, SUBSTR(A.PCTCNUMEROCONTA,1,2)||'.'||SUBSTR(A.PCTCNUMEROCONTA,5,3)||'.'||SUBSTR(A.PCTCNUMEROCONTA,9,3) PCTCNUMEROCONTA_NOVO, A.NATUREZA_PROTHEUS FROM FINANCE.PLANOCONTAS A WHERE TRIM(A.NATUREZA_PROTHEUS) IS NULL; BEGIN FOR REG IN CDADOS LOOP UPDATE FINANCE.PLANOCONTAS SET NATUREZA_PROTHEUS = REG.PCTCNUMEROCONTA_NOVO WHERE PCTCNUMEROCONTA = REG.PCTCNUMEROCONTA; END LOOP; END; /