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 :

Débutant - Petit problème de condition


Sujet :

PL/SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Par défaut Débutant - Petit problème de condition
    Bonjour,

    J'en suis sûr c'est un problème tout con mais comme je suis débutant en pl-sql...

    D'après le compilateur c'est un problème de syntaxe au niveau des conditions.

    voilà le code :
    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
    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 PROCEDURE tableau_vertical(filtre_type varchar2, colonne_ordonne varchar2, ordre_tri varchar2) is
    id_len    integer; 
    type_len  integer;
    nom_len   integer;
     
    TYPE myrecord IS RECORD (
    id   user_objects.OBJECT_ID%type,
    nom  user_objects.Object_NAME%type,
    type user_objects.OBJECT_TYPE%type);    
     
    TYPE mytable IS TABLE OF myrecord ;
    latable mytable ;		
     
    begin
     
    if filtre_type = '' AND colonne_ordonne = '' then
    	select OBJECT_ID,OBJECT_NAME,OBJECT_TYPE from user_objects into latable;
    elseif filtre_type = '' AND colonne_ordonne <> '' AND ordre_tri ='TC' then
    	select OBJECT_ID,OBJECT_NAME,OBJECT_TYPE from user_objects order by colonne_ordonne ASC into latable;
    elseif filtre_type = '' AND colonne_ordonne <> '' AND ordre_tri ='TD' then
    	select OBJECT_ID,OBJECT_NAME,OBJECT_TYPE from user_objects order by colonne_ordonne DESC into latable;
     
    elseif filtre_type <> '' AND colonne_ordonne = '' then
    	select OBJECT_ID,OBJECT_NAME,OBJECT_TYPE from user_objects where OBJECT_TYPE=filtre_type into latable;
    elseif filtre_type <> '' AND colonne_ordonne <> '' AND ordre_tri ='TC' then
    	select OBJECT_ID,OBJECT_NAME,OBJECT_TYPE from user_objects where OBJECT_TYPE=filtre_type order by colonne_ordonne ASC into latable;
    elseif filtre_type <> '' AND colonne_ordonne <> '' AND ordre_tri ='TD' then
    	select OBJECT_ID,OBJECT_NAME,OBJECT_TYPE from user_objects where OBJECT_TYPE=filtre_type order by colonne_ordonne DESC into latable;
    end if;
     
    id_len   :=9; 
    type_len :=18;
    nom_len  :=25;
     
    DBMS_output.put_line('+'||RPAD( '-' , id_len , '-')||'+'||RPAD( '-'   , type_len , '-')||'+'||RPAD( '-'  , nom_len , '-')||'+');
    DBMS_output.put_line('|'||RPAD( 'id', id_len , ' ')||'|'||RPAD( 'type', type_len , ' ')||'|'||RPAD( 'nom', nom_len , ' ')||'|');
    DBMS_output.put_line('+'||RPAD( '-' , id_len , '-')||'+'||RPAD( '-'   , type_len , '-')||'+'||RPAD( '-'  , nom_len , '-')||'+');
     
    for i in latable loop
    	DBMS_output.put_line('|'||RPAD( i.id, id_len , ' ')||'|'||RPAD( i.type, type_len , ' ')||'|'||RPAD( i.nom, nom_len , ' ')||'|');
    end loop;
     
    DBMS_output.put_line('+'||RPAD( '-' , id_len , '-')||'+'||RPAD( '-'   , type_len , '-')||'+'||RPAD( '-'  , nom_len , '-')||'+');
     
    end;
    Merci d'avance de toute réponse.

    Ralgrana.

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Billets dans le blog
    4
    Par défaut
    Attention, le '' est équivalent à NULL
    Donc tester ne sera jamais vrai.
    Il faut tester Sinon, c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT .. INTO .. FROM .. WHERE ..

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Août 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Tunisie

    Informations forums :
    Inscription : Août 2007
    Messages : 15
    Par défaut En plus
    on n'écrit pas ELSEIF ------> ELSIF

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 3
    Par défaut
    Merci beaucoup.

  5. #5
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Citation Envoyé par McM Voir le message
    Attention, le '' est équivalent à NULL
    Ce qui est l'une des plus grandes aberrations chez Oracle ... Cela va contre la norme SQL d'ailleurs
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

Discussions similaires

  1. Réponses: 11
    Dernier message: 19/09/2010, 14h37
  2. [Débutant] petit problème
    Par angsthase dans le forum C++
    Réponses: 5
    Dernier message: 21/02/2006, 19h24
  3. [débutant]petit problème sur formulaire avec onglets
    Par Christophe93250 dans le forum Access
    Réponses: 2
    Dernier message: 06/01/2006, 10h46
  4. [débutant] petit problème de selection...
    Par Avalon dans le forum Access
    Réponses: 5
    Dernier message: 04/01/2006, 23h33
  5. [Débutant] petit problème de "protected"
    Par dj_lil dans le forum Langage
    Réponses: 6
    Dernier message: 07/07/2005, 10h54

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