Zmena znakove sady pro session Oracle9?

Jan Serak sherry na pikebo.cz
Úterý Duben 1 16:11:56 CEST 2003


Michal Dobes wrote:
> Asi budu muset pouzit tu fci convert(). Pokud "select value$ from
> sys.props$ where name='NLS_CHARACTERSET'" opravdu vraci kodovani
> pouzite v DB, tak by nemel vzniknout problem. :-)

Tohle nemuzu doporucit, protoze PROPS$ neni dokumentovane rozhrani.
Lepe Vam pomuze

	SELECT value FROM v$nls_parameters WHERE parameter='NLS_CHARACTERSET';

Dostanete rovnou per-session informaci. O kodovani, ve kterem se to
fyzicky ulozi, se nemusi ten program starat.

Je pravdepodobne, ze Oraclove si tim vyresili nejaky vnitrni problem,
protoze to nejde ani pres ALTER SESSION ani pres dbms_session.
Nikde jsem nenasel explicitni zminku o duvodech (jenom v nejakem howto
na Metalinku, ze v ALTER SESSION lze pouzit vsechny NLS parametry
s vyjimkou NLS_CHARACTERSET).

Proste se nechava se na programu, ze kdyz manipuluje s externimi daty,
ktera
jsou v jinem kodovani, musi holt udelat CONVERT pred ulozenim do
databaze.

Jeste k tomu, co pisete o Apacim modulu a multithreadovych aplikacich.
Predpokladam, ze oboje by se psalo v OCI8 a tam nemoznost zmenit
kodovani pres ALTER SESSION vubec nevadi, protoze to zmenit lze
lowlevel funkci OCIEnvNlsCreate() nebo pouzit session pool (coz je
primo site na multithreading, akorat, kdyz jsem to cetl, tak mi
vstavaly vlasy na hlave vic, nez kdyz jsem cetl povidky od E. A. Poea).


							Jan Serak


Další informace o konferenci Databases