Archive for March, 2006

Se connecter (facilement) à une base Oracle

Depuis que j’utilise Oracle, je me suis toujours cantonné à l’infâme tnsnames.ora pour gérer mes alias de connection (protocole TCP). Lorsque l’on travaille sur une dizaine de connections qui changent souvent, le tnsnames.ora devient ingérable. Justement à l’occasion d’un bug auquel j’ai été confronté (j’ai tapé SERVICE_NAME=blah au lieu de SID=blah!), excédé, j’ai cherché des alternatives pour spécifier une chaîne de connection Oracle. En fait, depuis la version 10g, on peut utiliser ce qui s’appelle “Easy Connect String”. La syntaxe est simple:

sqlplus user/password@//server:port/service

Et voilà! Plus besoin de tnsnames.ora. Tout est dans le “//” qui annonce une syntaxe “Easy Connect”.

En fait il était déjà possible avant la version 10g de se connecter en tapant:

sqlplus user/password@(DESCRIPTION=
       (ADDRESS=(PROTOCOL=tcp)(HOST=host)(PORT=port) )
       (CONNECT_DATA=(SERVICE_NAME=service) ) )

Et la très bonne nouvelle, c’est que ça marche très bien dans une chaîne de connection ADO ou ADO.Net. Exemple:

Provider=MSDAORA.1;User ID=toto;Password=xxxx;
     Data Source=//server:port/service

Ciao tnsnames.ora! (A la limite on peut le garder comme documentation…)