Hogy lehet Oracle SQL-ben tizedesvesszőt és tizedespontot is kezelni?

Van egy adatbázis. Van neki egy NLS_NUMERIC_CHARACTERS beállítása.

Úgy látom, hogy ez csak az adatbázis indításakor változtatható.

Nekem meg az lenne jó, hogy az egyik felhasználó tizedesvesszőt használhasson, a másik tizedespontot.

Most így hirtelen semmi szép megoldás nem jut eszembe.

Talán ha a kliensen az NLS beállítást mondjuk magyarra állítanám, valószínűleg tizedesvessző jönne, de az a baj, hogy a felhasználók weblapon érik el az adatbázis felületét, és ott nem hiszem, hogy tudok NLS-t állítani.

Nem lehet valahogy SQL scriptben, vagy PL/SQL procedúrában ideiglenesen az NLS-t átállítani? Rémlik valami ilyesmi. De nem emlékszem.

G

Hozzászólások

Hm...

közben megtaláltam.

select to_binary_double( '5,5', '99D99', 'NLS_NUMERIC_CHARACTERS = '', ''') from dual;

És ez 5.5-öt ad vissza jól.

Érdekes, a to_number-t jól megnéztem korábban, és nem láttam. Pedig az is tud ilyet :-(

Létezik rá

ALTER SESSION SET NLS_NUMERIC_CHARACTERS...

parancs is, amellyel session szinten lehet
megmondani mindezt, nem szükséges lekérdezés szinten.