IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

"Mélanger" une table dans une base de données ORACLE


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Exploitant d'applications
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Exploitant d'applications
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Points : 14
    Points
    14
    Par défaut "Mélanger" une table dans une base de données ORACLE
    Bonjour,
    je voudrais anonymiser une base de données ORACLE (qui est installée sur un serveur UNIX)
    Pour cela, le parti que l'on a pris, c'est de "mélanger" les noms entre eux, mélanger les prénoms entre eux etc ...
    j'aurais aimé avoir votre avis et un peu d'aide sur la procédure à suivre.
    A noter que la table contenant les champs nom, prénom etc... contient environ 180 000 enregistrements.
    Personnellement, je pensais faire comme suit :
    positionnement aléatoire --> récupération du nom dans une variable (nom1), récupération de la position dans une autre variable(position1)
    positionnement aléatoire -->récupération du nom dans une variable (nom2), update du nom par la variable nom1
    positionnement à position1 --> update du nom par la variable nom2
    est-ce la bonne méthode ?
    la base que je dois traitée sera indisponible pour les utilisateurs durant la manipulation, je n'ai donc pas de problèmes de "surcharge" de la base.

    que me conseillez vous ?

    En vous remerciant de votre réponse.

    Cordialement

  2. #2
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    ce serais pas plus simple de remplacer les caractères un à un en passant par un CHR(RANDOM)... enfin, c'est l'idée quoi

  3. #3
    Membre à l'essai
    Homme Profil pro
    Exploitant d'applications
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Exploitant d'applications
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    l'élément, c'est que cette base doit servir de base de formation...
    et on veut que les éléments restent crédibles ...
    (pas de zfotlik naujeg en nom et prénom par exemple ...)

  4. #4
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Si je bien compris votre demande : faite une fonction qui génère des valeurs valides de la clé primaire de la table de départ d’une manière aléatoire et utilisez ensuite la fonction une première fois pour piquer un nom de la table de départ et une deuxième fois pour le prénom, etc. et générez une nouvelle table. Ou lisez 10000 lignes dans un tableau PL/SQL mélangez les donnés et écrivez le résultat dans la nouvelle table.

  5. #5
    Membre expérimenté

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Points : 1 359
    Points
    1 359
    Par défaut
    Avez vous pensé au Data Masking d'Oracle?

    https://apex.oracle.com/pls/apex/f?p...28499015368785

    Par contre, il me semble qu'il n'est disponible qu'à partir de la version 11gR2

  6. #6
    Rédacteur

    Homme Profil pro
    Consultant / formateur Oracle et SQL Server
    Inscrit en
    Décembre 2002
    Messages
    3 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Consultant / formateur Oracle et SQL Server

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 461
    Points : 8 079
    Points
    8 079
    Par défaut
    Citation Envoyé par Mohamed.Houri Voir le message
    Avez vous pensé au Data Masking d'Oracle?
    C'est vrai que c'est une solution, pour peu qu'on soit prêt à ouvrir le portefeuille pour se payer cette option...

  7. #7
    Membre à l'essai
    Homme Profil pro
    Exploitant d'applications
    Inscrit en
    Août 2007
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Exploitant d'applications
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Août 2007
    Messages : 14
    Points : 14
    Points
    14
    Par défaut
    tout d'abord, merci pour vos réponses.
    Pour le data masking, étant donné la non gratuité de cet outil, cela m'est impossible.
    Qui plus est, ma base est une base oracle 10G.
    enfin, le but n'est pas de masquer ou de rendre illisible les données, mais bien de les modifier (ou de les mélanger) pour conférer aux personnes inscrites dans la base un certain anonymat.

    mnitu, je pense que je vais faire comme vous le suggérez, je posterai mon script, ainsi ça permettra à d'autres personnes de faire la même chose.

    Encore merci

  8. #8
    Rédacteur

    Homme Profil pro
    Développeur et DBA Oracle
    Inscrit en
    Octobre 2006
    Messages
    878
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur et DBA Oracle

    Informations forums :
    Inscription : Octobre 2006
    Messages : 878
    Points : 1 197
    Points
    1 197
    Par défaut
    Citation Envoyé par Mohamed.Houri Voir le message
    Par contre, il me semble qu'il n'est disponible qu'à partir de la version 11gR2
    Salut,

    Il est disponible dans la version 10g Release 4 (10.2.0.4.0).

Discussions similaires

  1. copier une table d'une BDD dans une table d'une autre BDD
    Par faniette dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/05/2013, 11h17
  2. [AC-2003] insert des données d'une table dans une table d'une base externe
    Par marieo dans le forum VBA Access
    Réponses: 1
    Dernier message: 30/11/2009, 15h29
  3. Réponses: 7
    Dernier message: 21/08/2006, 17h27
  4. Réponses: 2
    Dernier message: 02/06/2006, 12h26

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo