zdravím pokud koukám dobře, tak initSQL parametr nemá driver od oraclu, ale driver pro oracle od inetsoftware. ten má taky parametr alterSession, který by podle dokumentace měl dělat přesně to, co potřebuji.
strávil jsem večer debugováním oracle driveru (od oraclu) a zdá se, že jejich driver žádnou možnost nastavení collation per session/connection nenabízí. :( ______________________________________________________________ > Od: [EMAIL PROTECTED] > Komu: Java <[email protected]> > Datum: 03.04.2008 12:07 > Předmět: Re: Jak nastavit třídění v db session/connection? > >JDBC driver Oracle ma vlastnost initSQL, pres kterou by mohlo jit zavolat to "ALTER SESSION...". > > Pavel > >Richard Holly wrote: >> Kedze pouzivate oracle tak napr. after logon trigger na urovni db pre > session konkretneho usera urobi tieto nastavenia. >> >> CREATE OR REPLACE TRIGGER set_czech_collation AFTER logon ON DATABASE >> DECLARE username VARCHAR2(30); >> cmmd VARCHAR2(64); >> BEGIN >> cmmd := 'ALTER SESSION SET NLS_SORT=czech'; >> username := sys_context('USERENV', 'SESSION_USER'); >> IF(username LIKE 'VAS_USER') THEN >> EXECUTE IMMEDIATE cmmd; >> END IF; >> EXCEPTION >> WHEN others THEN >> NULL; >> END; >> / >> >> [EMAIL PROTECTED] wrote / napísal(a): >>> Ahoj, >>> používám spring/hibernate/jetty pro webové služby. problém je, že se >> připojuji k databázi (oracle) která nemá nastavené collation. >>> >>> Uvedu jednoduchý příklad >>> rs = statement.executeQuery("select * from x order by y"); >>> vrátí výsledek setříděný binárně, tedy ABCabc, zatímco >>> statement.executeUpdate("ALTER SESSION SET NLS_SORT=czech"); >>> rs = statement.executeQuery("select * from x order by y"); >>> vrátí stejný výsledek setříděný česky, tedy AaBbCc. >>> >>> co hledám, je způsob, jak nastavit požadované třídění někde v >> connection stringu nebo connection properties, abych to mohl uvést >> někde ve spring/hibernate konfigurácích nebo property souborech. >>> >>> díky za jakékoliv nakopnutí správným směrem. rb. >>> >>> > >> > >
