SQL*Loader

Publié le 27 Janvier 2010

SQL*Loader est un utilitaire Oracle qui permet d'insérer directement des données en base sans passé par les requêtes SQL "INSERT INTO ...".

Ceci a plusieurs avantages car on peut charger des fichiers textes contenant les valeurs et le gain de temps est conséquent. Ces principalement ces deux avantages qui ont retenus mon choix sur cet outil.

Maintenant pour le fonctionnement:

C'est pas très compliqué (au début en tout cas).

SQL*Loader (sqlldr) a besoin de 2 fichiers pour travailler:
 - le fichier contenant les données à insérer bien sûr
 - un fichier de control expliquant à sqlldr comment se présentent les données dans le fichier texte et où les insérer dans la base.

Le fichier texte n'a pas besoin de respecter un format spécifique étant donné que sa structure est décrite dans le fichier de controle.

Dans mon cas je veux remplir une table avec les valeurs qui se trouvent dans mon fichier texte.

La table que je dois remlir contient 2 colonnes:
site mot-clé
le nom du site la liste des mots clé contenu dans le site

Ce qui donne par exemple:
site mot-clé
pointzero.over-blog.com SQL
pointzero.over-blog.com Oracle
pointzero.over-blog.com sqlldr

Le fichier qui contient les données ressemble à ça:

SQL
Oracle
sqlldr
...

Donc il faut créer un fichier de contrôle qui prend le mot clé dans le fichier texte et qui insère le nom du site (pointzero.over-blog.com):

load data
append
into table MOTS_CLES
(
    SITE CONSTANT 'pointzero.over-blog.com',
    MOTCLE POSITION(01:10) char,
)


Ce fichier effectue un "append" (rajoute) des données dans la table MOTS_CLES.
Il insère toujours la constante 'pointzero.over-blog.com' dans la colonne SITE et les 10 premiers caractère du mot clé qui se trouve le fichier texte dans le colonne MOTCLE.

Voilà tout est prêt il n'y a plus qu'à lancer la commande:

sqlldr userid=${USER}/${PASSWORD}@${DATABASE} \
  control=motscles.ctl \
  direct=true \
  readsize=1000 \
  bindsize=1000 \
  rows=1000 \
  errors=0 \
  log=motscles.log \
  bad=motscles.bad \
  discard=motscles.dsc \
  data=motscles.txt

Rédigé par damien

Publié dans #Oracle

Repost 0
Commenter cet article