hi,
i have code:
CREATE OR REPLACE FUNCTION is_regon (str_regon IN VARCHAR2)
RETURN VARCHAR2
IS
/*
*
*
*
*/
flaga VARCHAR2(5);
suma pls_integer;
k pls_integer;
TYPE integer_varray IS VARRAY(8) OF NUMBER;
v_control_9 INTEGER_VARRAY := integer_varray(8, 9, 2, 3, 4, 5, 6, 7);
TYPE integer_varray_14 IS VARRAY(13) OF NUMBER;
v_control_14 INTEGER_VARRAY := integer_varray(2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8);
BEGIN
--
flaga := 'false';
IF (length(str_regon) = 9 or length(str_regon) = 14) THEN
suma := 0;
FOR i in 1..8 LOOP
suma := suma + (TO_NUMBER(substr(str_regon, i, 1)) * v_control_9(i));
END LOOP;
k := mod(suma, 11);
IF(k = 10) THEN
k := 0;
END IF;
IF (TO_NUMBER(substr(str_regon, 9, 1)) = k) THEN
flaga := 'true';
ELSE
flaga := 'false';
END IF;
IF (length(str_regon) <> 9) THEN
suma := 0;
FOR i in 1..13 LOOP
suma := suma + (TO_NUMBER(substr(str_regon, i, 1)) * v_control_14(i));
END LOOP;
k := mod(suma, 11);
IF (k = 10) THEN
k := 0;
END IF;
IF (TO_NUMBER(substr(str_regon, 14, 1)) = k) THEN
flaga := 'true';
ELSE
flaga := 'false';
END IF;
END IF;
ELSE
flaga := 'false';
END IF;
RETURN (flaga);
END is_regon;
when i run this func i have: ORA-06532, why?
is this problem with my declarations of arrays:
TYPE integer_varray IS VARRAY(8) OF NUMBER;
v_control_9 INTEGER_VARRAY := integer_varray(8, 9, 2, 3, 4, 5, 6, 7);
TYPE integer_varray_14 IS VARRAY(13) OF NUMBER;
v_control_14 INTEGER_VARRAY := integer_varray(2, 4, 8, 5, 0, 9, 7, 3, 6, 1, 2, 4, 8);
?
did i declare these array corectly? i want to my v_control_14 array use the integer_varray_14 type, is it ok?
thanks