Wednesday, February 28, 2007

I have some simple solutions to validate Malaysian IC / (NewIc) in PL/SQL. This solution may not be the best but at least helps a little.
The format
YYMMDD######

CREATE OR REPLACE FUNCTION is_validic(char_in VARCHAR2) RETURN VARCHAR2 IS
n NUMBER;
incorrect EXCEPTION;
BEGIN
n:=0;
if to_date(substr(char_in,1,6),'YYMMDD') !=to_date(substr(char_in,1,6),'YYMMDD') then
n:=n+1;
end if;

if length(nvl(char_in,'0')) !=12 then
n:=n+1;
end if;

if n=0 then
return 'TRUE';
else
return 'FALSE';
end if;

EXCEPTION
WHEN OTHERS THEN
RETURN 'FALSE';
END is_validic;

No comments: