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 :

Comment populer une table automatiquement? Et comment trouver les valeurs non presentes dans la base cible ?


Sujet :

Oracle

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 16
    Points
    16
    Par défaut Comment populer une table automatiquement? Et comment trouver les valeurs non presentes dans la base cible ?
    Bonjour

    Est il possible sous Oracle de populer une table de facon plus rapide qu un INSERT par nouvelle valeur souhaitee (idee: AUTOGENERATE...) ?
    J ai deux bornes (une inf et une sup ) qui me serviront pour les champs a inserer.

    Ex. Bornes = 1 - 200
    La table devra contenir les valeurs de 1 a 200




    De plus j ai des champs codes en VARCHAR2(11) qui sont des entiers.
    Je souhaite trouver les champs n etant pas presents dans cette table.
    Je pensais passer par la table que je souhaite creer ci dessous mais ne vois pas bien comment faire cela. Dois je convertir les VARCHAR2 en NUMBER ?

    So far voici ce que j ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    DROP VIEW TMP_ValuesBoundaries ;
     
    CREATE VIEW TMP_ValuesBoundaries AS
    SELECT 
          MIN(serial) as MinSerial,
          MAX(serial) as MaxSerial,
          COUNT(serial) as NbSerial
    FROM  Values
    WHERE  
      RTRIM(serial,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') = serial )
        AND ( LTRIM(serial,'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ') = serial );
     
     
    -- SELECT * FROM TMP_ValuesBoundaries;
     
    CREATE VIEW TMP_ValuesAvailable AS
    SELECT 
        ??? -- autogenerated values
    FROM DUAL
    WHERE SERIAL NOT IN (SELECT.....)
    Merci par avance

  2. #2
    Expert confirmé
    Profil pro
    Inscrit en
    Août 2008
    Messages
    2 948
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2008
    Messages : 2 948
    Points : 5 847
    Points
    5 847
    Par défaut
    Est ce ça dont tu as besoin ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     select level from dual
    connect by level <= 200

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Avril 2009
    Messages : 19
    Points : 16
    Points
    16
    Par défaut
    Salut

    Cela fait une partie du travail ^^ merci.
    Est il possible de faire une restriction sur l ensemble?
    En gros je souhaiterai populer une table avec les valeurs entre une borne min (disons 30) et une max (500.

    Une fois cette table creee je ferais un where not exists sur une autre table pour trouver les valeurs dispo.

    merci

Discussions similaires

  1. [phpMyAdmin] Comment avoir une table triée sur un critère automatiquement ?
    Par bluemanca dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 05/05/2012, 11h11
  2. Trouver des valeurs non uniques dans une table
    Par morbli dans le forum Langage SQL
    Réponses: 11
    Dernier message: 29/09/2011, 11h56
  3. Garder les valeurs non nulles dans une matrice
    Par mfontan dans le forum MATLAB
    Réponses: 4
    Dernier message: 03/04/2009, 13h42
  4. comment archiver une table automatiquement?
    Par feldene dans le forum Administration
    Réponses: 7
    Dernier message: 30/09/2008, 11h16
  5. Réponses: 5
    Dernier message: 06/06/2006, 14h12

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