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:
  1. NLS_LANGUAGE=HUNGARIAN  
  2. NLS_TERRITORY=HUNGARY  
  3. NLS_DATE_FORMAT=YYYY-MM-DD HH24:MI:SS  
  4. NLS_DATE_LANGUAGE=HUNGARIAN  
  5. 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.
  1. CREATE TABLE TABLE1  
  2.    (  
  3.     TEST_NUM NUMBER(4,2)  
  4.    )  
  5.   
  6. INSERT INTO TABLE1 (TEST_NUM) VALUES (0.2);  
  7. INSERT INTO TABLE1 (TEST_NUM) VALUES (1.3);  
  8. select * from TABLE1;  
"TEST_NUM"
"0,2"		
"1,3"