우선은 갑갑해서(?) 조금전에 만든 함수입니다.
에러처리나 기타의 기능은 전혀(!) 없습니다.
그리고 어느분이 개선좀해서 올려주세요.
(정신적 여유가 없어서... 죄송)
CREATE FUNCTION maskbit(text) RETURNS int AS '
DECLARE
i_te int;
r_te int;
te text;
BEGIN
te := $1;
i_te := 0;
r_te := 0;
FOR i IN 1..4 LOOP
i_te := SUBSTR(te, 1, STRPOS(te,''.'')-1)::INT;
IF 0 = i_te THEN
r_te := r_te + 0; RETURN r_te;
ELSIF 128 = i_te THEN
r_te := r_te + 1; RETURN r_te;
ELSIF 192 = i_te THEN
r_te := r_te + 2; RETURN r_te;
ELSIF 224 = i_te THEN
r_te := r_te + 3; RETURN r_te;
ELSIF 240 = i_te THEN
r_te := r_te + 4; RETURN r_te;
ELSIF 248 = i_te THEN
r_te := r_te + 5; RETURN r_te;
ELSIF 252 = i_te THEN
r_te := r_te + 6; RETURN r_te;
ELSIF 254 = i_te THEN
r_te := r_te + 7; RETURN r_te;
ELSIF 255 = i_te THEN
r_te := r_te + 8;
END IF;
te := substr(te, strpos(te,''.'')+1);
END LOOP;
RETURN r_te;
END;
' LANGUAGE 'plpgsql';
인천의 나사 풀린 산호...
|