CREATE OR REPLACE FUNCTION IS_NUMBER(P_VAR IN VARCHAR2) RETURN NUMBER IS P_NUMBER NUMBER := 0; RIG VARCHAR2(10) := ''; FORMAT VARCHAR2(100) := '999999999999D999999999999'; RES VARCHAR2(100) := ''; BEGIN SELECT VALUE INTO RIG FROM NLS_DATABASE_PARAMETERS WHERE PARAMETER = 'NLS_NUMERIC_CHARACTERS'; IF SUBSTR(RIG,1,1) = '.' THEN RES := REPLACE(P_VAR,',','.'); ELSE RES := REPLACE(P_VAR,'.',','); END IF; P_NUMBER := TO_NUMBER(RES,FORMAT,'NLS_NUMERIC_CHARACTERS='''||RIG||''''); P_NUMBER := ROUND(P_NUMBER,5);
Denis
source share