, , Oracle SQL Developer.
Oracle 11.2.0.3.0 64bit, TOAD 12.0.0.61, , Oracle SQL Developer 17.2.0.188.
:
:
CREATE OR REPLACE FUNCTION test_function(x$n in NUMBER)
RETURN NUMBER IS
BEGIN
RETURN x$n;
END;
TOAD
№1 .:
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';
DECLARE
numVar$n NUMBER;
BEGIN
numVar$n:= 2.1;
DBMS_OUTPUT.PUT_LINE('Raw Number: '||numVar$n);
DBMS_OUTPUT.PUT_LINE('Function Number: '||test_function(2.1));
END;
:
Raw Number: 2.1
Function Number: 2.1
№2 ,:
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.';
DECLARE
numVar$n NUMBER;
BEGIN
numVar$n:= 2.1;
DBMS_OUTPUT.PUT_LINE('Raw Number: '||numVar$n);
DBMS_OUTPUT.PUT_LINE('Function Number: '||test_function(2.1));
END;
:
Raw Number: 2,1
Function Number: 2,1
Oracle SQL Developer
Oracle SQL Developer # 1 , №2 ORA-06502 - .
№1: to_number('2,1') 2.1:
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.';
DECLARE
numVar$n NUMBER;
BEGIN
numVar$n:= 2.1;
DBMS_OUTPUT.PUT_LINE('Raw Number: '||numVar$n);
DBMS_OUTPUT.PUT_LINE('Function Number: '||test_function(to_number('2,1')));
END;
:
Raw Number: 2,1
Function Number: 2,1
№2: NLS_NUMERIC_CHARACTERS :
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = ',.';
DECLARE
numVar$n NUMBER;
nnc$c VARCHAR2(255);
BEGIN
numVar$n:= 2.1;
SELECT value
INTO nnc$c
FROM nls_session_parameters
WHERE parameter = 'NLS_NUMERIC_CHARACTERS';
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS=''.,''';
DBMS_OUTPUT.PUT_LINE('Raw Number: '||numVar$n);
DBMS_OUTPUT.PUT_LINE('Function Number: '||test_function(2.1));
EXECUTE IMMEDIATE 'ALTER SESSION SET NLS_NUMERIC_CHARACTERS='''||nnc$c||'''';
END;
:
Raw Number: 2.1
Function Number: 2.1