Se connecter (facilement) à une base Oracle
Thursday, March 9th, 2006Depuis 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…)