18.3.09

Clients antics d'Oracle no funcionen amb la nova versió 11g

Sembla que amb la nova versió 11g d'Oracle ja no funcionen els clients molt antics com els de la versió 8 (Legacy Applications and Oracle 11g). Els clients 9.2 si que funcionen, però amb ODBC no i fent diversos intents sembla que es bloqueja el compte d'usuari i cal acabar fent un:
    SQL> ALTER USER username ACCOUNT UNLOCK;
Així doncs, he instal·lat l'últim client Oracle que he trobat, l'Oracle Instant Client 11. En principi només volia actualitzar el driver d'Oracle, però sembla que s'ha d'instal·lar tot, bé s'ha d'instal·lar com a mínim el paquet base i el paquet odbc en aquest ordre, després cal fer unes quantes coses més, en aquest cas a Windows ha calgut fer tot això:
  1. Si tenim un fitxer TNSNAMES.ORA el copiarem en el directori del client (C:\instant_client_11_1), si no l'haurem de crear posant-hi la configuració de totes les connexions a bases de dades Oracle que volguem fer.
  2. Afegirem el directori al PATH.
  3. Afegirem la variable TNS_ADMIN amb el directori del client.
  4. Afegirem la variable NLS_LANG amb el nostre joc de caràcters, per exemple AMERICAN_AMERICA.WE8MSWIN1252.
  5. Editem el registre i si existeix la subclau NLS_LANG a \HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE li canviarem el nom perquè no entri en conflicte amb la variable d'entorn que hem creat. Això farà que el client Oracle que tinguem deixi de funcionar.
  6. Executem l'odbc_install.exe del directori del client.
  7. Creem i provem el nou ODBC des de l'Administrador d'Orígens ODBC, el nou driver es dirà "Oracle in instantclinet11_1".