CREATE OR REPLACE function dottedQuadToNumber ( dottedQuad IN VARCHAR2) return number is Result NUMBER; begin Result:= (substr(dottedQuad , 1, (instr(dottedQuad , '.', 1, 1 ) - 1)) * 256 * 256 * 256 ) + (substr(dottedQuad , instr(dottedQuad , '.', 1, 1 ) + 1, instr(dottedQuad , '.', 1, 2 ) - instr(dottedQuad , '.', 1, 1 ) - 1) * 256 * 256 ) + (substr(dottedQuad , instr(dottedQuad , '.', 1, 2 ) + 1, instr(dottedQuad , '.', 1, 3 ) - instr(dottedQuad , '.', 1, 2 ) - 1) * 256 ) + (substr(dottedQuad , instr(dottedQuad , '.', 1, 3 ) + 1) ) ; return(Result ); end dottedQuadToNumber ; |