Outils personnels

Tutoriaux

De wikiGite

Révision datée du 25 septembre 2008 à 12:56 par Frank (discussion | contributions)

Systèmes et outils système

Filtrage de mail à la source : Filtres Procmail

Bases de données

SQL Server sur Oracle SQL Developer

Logiciels

Paramétrage, règles et variables Tripwire

MediaWiki tips and tricks

ISPConfig

Oracle 10 : NLS_LANG, nls_*_parameters

Il y a 3 niveaux de NLS :

  • database (nls_database_parameters) : initialisés à la création de la base, immuable
  • instance (nls_database_parameters) : initialisés par spfile, non dynamiques
  • session (nls_session_parameters) : changés par alter session

Session si non paramétré prend la valeur d'Instance qui si non paramétré prend la valeur de Database.

MAIS il y a un autre paramètre qui peut tout changer : NLS_LANG, paramètre d'environnement OS. Or sur Windows il est paramétré dans les registres.

Exemples :

  • NLS_LANG=AMERICAN_AMERICA.WE8ISO8859.

Une base crée en AMERICAN_AMERICA prendra cette valeur par défaut. Si on change le spfile, l'instance sera bien en FRENCH_FRANCE, MAIS les sessions utilisateurs resteront en AMERICAN_AMERICA à cause du NLS_LANG.

Par contre une base créée en FRENCH_FRANCE reportera bien ces paramètres sur instance et sessions.

  • NLS_LANG=FRENCH_FRANCE.WE8ISO8859.

La base créée en AMERICAN_AMERICA prend FRENCH_FRANCE au redémarrage. Si on a modifié le spfile, les sessions sont aussi en FRENCH_FRANCE.

Oracle : Activer une trace SQL sur une session

Repérer le sid et serial# de la session :

col username format A10
col osuser format A20
col machine format A20
select sid, serial#, username, osuser, machine from v$session;

Activer la trace :

EXECUTE DBMS_MONITOR.SESSION_TRACE_ENABLE(<sid>,<serial#>,TRUE,TRUE);

Les fichiers sont générés dans udump.

Arrêter la trace :

EXECUTE DBMS_MONITOR.SESSION_TRACE_DISABLE(<sid>,<serial#>);

Les fichiers ne sont pas très lisibles. On a intérêt à les passer "à la moulinette" :

tkprof <nom_du_fichier.trc> <fichier_de_sortie.txt>