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

PL/SQL Oracle Discussion :

statut invalide d'une fonction


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre actif
    Inscrit en
    Avril 2008
    Messages
    72
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 72
    Par défaut statut invalide d'une fonction
    bonjour ma fonction
    retourne un statut invalide malgré qu'elle s'exécute normalement

    merci de m aider

    Code sql : 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
     
    create or replace function existe_partition
     
    (
     
    p_table in varchar2,
     
    nom_partition in varchar2
     
    ) 
     
    return varchar
     
    as
     
    --cette fonction permet de vérifier si la partition nom_partition exite dans
     
    --la table p-table, si oui répond 'T' sinon 'F'
     
    nom_partition varchar2 (50);
     
    p_table varchar2(50);
     
    begin
     
    if nom_partition in (select distinct T1.partition_name from all_tab_partitions T1
     
    where T1.table_name = p_table)
     
    then return 'T';
     
    else return 'F';
     
    end if;
     
    EXCEPTION
     
    WHEN NO_DATA_FOUND THEN
     
    NULL;
     
    WHEN OTHERS THEN
     
    RAISE;
     
    end existe_partition ;

  2. #2
    Membre chevronné Avatar de xdescamp
    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2008
    Messages : 300
    Par défaut
    Une fonction dont le statut est 'INVALID' ne peut pas être exécutée.
    Pour obtenir l'erreur de compilation, utiliser la commande SHOW ERROR :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SQL> show error
    Erreurs pour FUNCTION EXISTE_PARTITION :
     
    LINE/COL ERROR
    -------- -----------------------------------------------------------------
    0/0      PL/SQL: Compilation unit analysis terminated
    1/1      PLS-00410: champs en double interdits dans RECORD ou TABLE
    Les variables locales ne peuvent pas porter le même nom que les paramètres.

    L'instruction suivante provoquera également une erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    IF nom_partition IN (SELECT DISTINCT T1.partition_name FROM all_tab_partitions T1
    WHERE T1.table_name = p_table)
    Il faut faire une requête qui prend le nom de la partition dans sa clause WHERE et récupérer le résultat dans une variable.
    Ensuite seulement tester la variable.

Discussions similaires

  1. invalid read & write dans une fonction
    Par nocta dans le forum C
    Réponses: 3
    Dernier message: 09/11/2010, 14h22
  2. Réponses: 3
    Dernier message: 05/11/2006, 13h19
  3. [VBA-E] avec une fonction value
    Par laas dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 28/11/2002, 13h22
  4. [Turbo Pascal] Allocation et désallocation de pointeurs dans une fonction
    Par neird dans le forum Turbo Pascal
    Réponses: 13
    Dernier message: 17/11/2002, 20h14
  5. Une fonction avec des attributs non obligatoires
    Par YanK dans le forum Langage
    Réponses: 5
    Dernier message: 15/11/2002, 13h39

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