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

SQL Oracle Discussion :

Teste d'existence d'une sequence avant de la créer


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 43
    Par défaut Teste d'existence d'une sequence avant de la créer
    Bonjour à Tous!

    Je voudrais tester l'existence d'une sequence Oracle avant de la créer!
    Qlq pourra t il m'aider?

    Merci

  2. #2
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Consulter USER_SEQUENCES ou DBA_SEQUENCES ?
    Si vous obtenez une exception NO_DATA_FOUND alors votre séquence n'existe pas.

  3. #3
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862

  4. #4
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Finance

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    exec for f in (select 1 from user_sequences where sequence_name='S' having count(*)=0) loop execute immediate  'create sequence s'; end loop

  5. #5
    Membre averti
    Inscrit en
    Novembre 2005
    Messages
    43
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 43
    Par défaut Oui, mais!
    Je vous remercie tous pour votre aide!
    Voila 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
    create or replace function CREER_SEQUENCE return number is
      NOM_SEQUENCE VARCHAR2(50 BYTE);
      Resultat number;
      cursor c is 
    select sequence_name from user_sequences where sequence_name = 'MA_SEQUENCE';
    begin
    OPEN C;
    FETCH C INTO NOM_SEQUENCE;
    IF C%NOTFOUND then
    Execute immediate ' CREATE SEQUENCE MA_SEQUENCE MINVALUE 1 START WITH 1 INCREMENT BY 10 CACHE 20';
    END IF;
    CLOSE C;
    Resultat := 1;
    return(Resultat);
    end CREER_SEQUENCE;
    Mais Comment faire appel à cette fonction afin d'utiliser la séquence?
    Car dans un select comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select CREER_SEQUENCE() as Champ from user_tables
    J'obtiens l'erreur suivante: ORA:14552

    et Merci!

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    c'est trop compliqué comme script

    d'abord, tu as une erreur parce qu'il est interdit de faire un code DDL dans un SELECT. Tu dois donc créé une procédure comme t'as montré laurentschneider.

Discussions similaires

  1. Test d'existence d'une table avant insertion
    Par YavaDeus dans le forum PL/SQL
    Réponses: 2
    Dernier message: 22/04/2009, 12h10
  2. test d'existence d'une table dans une bd mysql
    Par kafana dans le forum JDBC
    Réponses: 5
    Dernier message: 25/03/2006, 21h19
  3. Réponses: 2
    Dernier message: 08/12/2005, 14h41
  4. Réponses: 1
    Dernier message: 14/11/2005, 16h51
  5. Test d'existence d'une valeur dans une table
    Par dleu dans le forum Bases de données
    Réponses: 9
    Dernier message: 29/12/2004, 10h38

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