Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- DROP FUNCTION fc_valida_cnpj;
- SET SERVEROUTPUT ON;
- ACCEPT p_cnpj PROMPT 'Preencha seu CNPJ';
- DECLARE
- v_cnpj VARCHAR2(250) := &p_cnpj;
- v_total NUMBER(20) := 0;
- v_dig NUMBER(20) := 0;
- BEGIN
- FOR i IN 1..4 LOOP v_total := v_total + SUBSTR(v_cnpj, i, 1) * ( 6 - i );
- END LOOP;
- FOR i IN 5..12 LOOP v_total := v_total + SUBSTR(v_cnpj, i, 1) * ( 14 - i );
- END LOOP;
- v_dig := 11 - MOD(v_total, 11);
- IF v_dig > 9 THEN
- v_dig := 0;
- END IF;
- IF v_dig != SUBSTR(v_cnpj, 13, 1) THEN
- DBMS_OUTPUT.put_line('CNPJ Invalido');
- END IF;
- v_dig := 0;
- v_total := 0;
- FOR i IN 1..5 LOOP v_total := v_total + SUBSTR(v_cnpj, i, 1) * ( 7 - i );
- END LOOP;
- FOR i IN 6..13 LOOP v_total := v_total + SUBSTR(v_cnpj, i, 1) * ( 15 - i );
- END LOOP;
- v_dig := 11 - MOD(v_total, 11);
- IF v_dig > 9 THEN
- v_dig := 0;
- END IF;
- IF v_dig != SUBSTR(v_cnpj, 14, 1) THEN
- DBMS_OUTPUT.put_line('CNPJ Invalido');
- ELSE
- DBMS_OUTPUT.put_line('CNPJ Valido');
- END IF;
- END;
- /
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement