5.29.2008

Effacer ses fichiers en double sur son disque

Êtes-vous du genre à enregistrer plein de fichiers sur votre ordinateur et à ne pas vous soucier s'ils sont déjà là sur le disque sous un autre nom (ou un autre répertoire)? C'est mon cas et j'ai voulu "scanner" mon PC avec un outil qui comparer non pas seulement les noms des fichiers (ce qui serait stupide) mais leur contenu octet par octet.

J'ai googlé "duplicate file" et j'ai trouvé un freeware nommé Easy Duplicate Finder. Graphiquement, il est très jolie et il possède des fonctions avancées de recherche. On peut écarter les fichiers de taille 0, protéger les dossiers systèmes et les autres fichiers systèmes. On peut spécifier une taille minimale des fichiers à trouver (exemple 100 ko) ainsi qu'une taille maximale. On peut faire des masques (exemple *.mp3) pour trouver notre musique seulement.

Lors de la suppression des fichiers sélectionnés, il est possible d'effacer définitivement (comme le Shitf+Del) ou encore de les envoyer à la corbeille.















Voir les screenshots du logiciel Easy Duplicate Finder

5.28.2008

TNS_ADMIN et tnsnames.ora

Pour vous connecter à une bd oracle via un alias tns, vous devez pointer vers un fichier tnsnames.ora local ou distant (réseau). La deuxième approche est préférable puisqu'elle centralise vos connexions. Mais d'abord, qu'est-ce qu'un fichier tnsnames.ora? Il s'agit d'un fichier de configuration de type Sql*Net qui définit les adresses des bases de données afin que vous puissiez vous connecter.

Voici le format d'adresse que vous allez rencontrer dans ce fichier:
 =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(Host = )(Port = ))
)
(CONNECT_DATA =
(SERVICE_NAME = )
)
)
Et un exemple concret:
UNI1.WORLD =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = uni1)
)
)
Sur un poste client, vous allez retrouver tnsnames.ora dans le dossier $ORACLE_HOME/network/admin/tnsnames.ora

Pour pointer vers un TNS centralisé (réseau), vous devez soit ajouter une variable d'environnement TNS_ADMIN ou une clé TNS_ADMIN dans le registre HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_{ORACLE_HOME} et lui donner la valeur de l'emplacement du répertoire contenant le tnsnames.ora réseau.

Enfin, il existe également le mode EZConnect qui vous permet de vous connecter directement à la bd sous la forme username/password@[//]host[:port][/service_name].

5.26.2008

Glogin pour SQL*Plus

Vous aimeriez savoir dans quel instance oracle et sous quel usager vous êtes connecté? C'est possible et ce rapidement avec un script de démarrage glogin pour sql plus. Ce fichier est situé dans le répertoire /admin de votre client sql plus. Évidemment, vous pouvez aussi faire ces 2 commandes:
  • select * from v$instance; (savoir le nom de votre instance)
  • sho user (savoir le nom d'usager)
Essentiellement, dans le fichier glogin, vous pouvez paramétrer l'affichage des résultats dans sql plus. Par exemple:
  • set linesize 200
  • set define off
Une fois connecté, vous pouvez aussi envoyer des commandes sql et afficher dans votre prompt (le fameux sql> ) votre identifiant et votre instance courante (identifiant:instance> ).

Voici le bout de code à ajouté à la fin de votre fichier glogin:
-- Section to build a new prompt like USERNAME:INSTANCE>
SET TERMOUT OFF
COLUMN setprompt NEW_VALUE setprompt

-- With HOSTNAME (Need "select any dictionary" grant to the user otherwise: no prompt at all)
-- SELECT '(' || HOST_NAME || ') ' || USER || ':' || SUBSTR(SUBSTR(global_name, 1, 30), 1, DECODE(INSTR(SUBSTR(global_name, 1, 30), '.') - 1, -1, 30, INSTR(SUBSTR(global_name, 1, 30), '.') - 1) ) || '> ' setprompt FROM global_name, v$instance;
-- Without HOSTNAME SELECT USER || ':' || SUBSTR(SUBSTR(global_name, 1, 30), 1, DECODE(INSTR(SUBSTR(global_name, 1, 30), '.') - 1, -1, 30, INSTR(SUBSTR(global_name, 1, 30), '.') - 1) ) || '> ' setprompt FROM global_name;

SET SQLPROMPT "&setprompt"
SET TERMOUT ON


Nouveauté avec Oracle 10g:

Tout simplement ajoutez ces 2 lignes à la fin du fichier
set time on
set sqlprompt "_USER'@'_CONNECT_IDENTIFIER _PRIVILEGE> "

et vous aurez un prompt similaire à ceci:
20:13:44 SYSTEM@orcl>



Mes items partagés de Google Reader