Advertisement
Guest User

Untitled

a guest
Sep 11th, 2012
179
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 0.83 KB | None | 0 0
  1. FUNCTION fnc_codbarra_isbt128 (p_input VARCHAR2) RETURN VARCHAR2
  2.   IS
  3.     v_caracter VARCHAR2(2);
  4.     v_digito VARCHAR2(2);
  5.     v_f_string_nova VARCHAR2(200);
  6.     v_pos1 INTEGER := 1;
  7.     v_peso INTEGER := 0;
  8.     v_soma INTEGER := 103;
  9.     v_resto INTEGER;
  10.     v_valcaracter INTEGER;
  11.   BEGIN
  12.     v_f_string_nova := 'Ë' || p_input;
  13.        
  14.     WHILE v_pos1 <= LENGTH(p_input) LOOP
  15.         v_caracter := SUBSTR(p_input, v_pos1, 1);
  16.         v_peso := v_pos1;
  17.  
  18.         v_valcaracter := ASCII(v_caracter) - 32;
  19.  
  20.         v_soma := v_soma + (v_peso * v_valcaracter);
  21.         v_pos1 := v_pos1 + 1;
  22.     END LOOP;
  23.    
  24.     v_resto := v_soma MOD 103;
  25.    
  26.     v_digito := CHR(v_resto + 32);
  27.    
  28.     v_f_string_nova := v_f_string_nova || v_digito || 'Î';
  29.                
  30.     RETURN v_f_string_nova;
  31.   END fnc_codbarra_isbt128;
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement