ugrás a tartalomhoz

Oracle és a '0.'-tal kezdődő számok

Chaar-Lee · 2009. Szep. 17. (Cs), 13.17
Nem tudom más is belefutott-e már ebbe a problémába, de az Oracle a -1 és 1 közötti számokat úgy adja vissza, hogy a 0-át lecsapja az elejéről azaz a 0.32 helyett azt kapom vissza, hogy .32. A megrendelőnél ez kivágja a biztosítékot, ő mindenképp látni szeretné azt a nullát is.
A problémám az, hogy nem egy tábla egy attributumát éritni ez a probléma, hanem legalább 50 táblát. Valahogy adatbázis oldalon szeretném ezt megoldani, és nem a rengeteg SQL lekérdezést átheggeszteni, illetve azt se tartom szerencsés megoldásnak, hogy a lekérdezés eredményeivel mielőtt foglalkozni kezdenék lefuttatok rajtuk egy függvényt, ami átalakítja a helytelen értékeket. Szóval valaki tudja mit kell állítani Oracle-nél, hogy ne legyen ez probléma?
 
1

NLS

zila · 2009. Szep. 17. (Cs), 18.41
Szerintem állítsd be a rendes magyar környezetet az adatbázisban.
Nálam:
NLS_LANGUAGE=HUNGARIAN
NLS_TERRITORY=HUNGARY
NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS
NLS_DATE_LANGUAGE=HUNGARIAN
NLS_NUMERIC_CHARACTERS=,
Ezeket vagy session-önként beállítod kapcsolódás után (ALTER SESSION NLS_TERRITORY=HUNGARY) vagy az egész instance-ra ALTER SYSTEM-mel.

CREATE TABLE TABLE1
   (
	TEST_NUM NUMBER(4,2)
   )

INSERT INTO TABLE1 (TEST_NUM) VALUES (0.2);
INSERT INTO TABLE1 (TEST_NUM) VALUES (1.3);
select * from TABLE1;
"TEST_NUM"
"0,2"		
"1,3"