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 :

Erreur syntaxe fonction PL/SQL


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut Erreur syntaxe fonction PL/SQL
    Bonjour,

    je débute en PL/SQL et je galère sur une fonction qui parait toute simple
    je souhaite concaténer les champs T_LIBELLE des lignes correspondant à un même identifiant
    j'ai fait cette fonction sous VBA et pas de problème ;

    mais j'obtiens l'erreur ci-dessous :
    12/2 PLS-00103: Symbole "END" rencontré à la place d'un des symboles
    suivants :
    . ( * @ % & = - + ; < / > in mod not rem an exponent (**)
    <> or != or ~= >= <= <> and or like between is null is not ||
    Symbole ";" a été substitué à "END" pour continuer.
    je ne comprends pas car j'utilise cette syntaxe dans une procédure stockée PLL/SQL et çà fonctionne
    d'avance merci pour votre aide

    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 function concatenat(id in number) return varchar2
    is
    	result VARCHAR2(255);
    	CURSOR c IS SELECT EFFORT.TABINDICATION_LIBELLE.T_LIBELLE FROM EFFORT.TABINDICATION_EFFORT,EFFORT.TABINDICATION_LIBELLE WHERE EFFORT.TABINDICATION_EFFORT.IE_N_INDICATIONS(+)=EFFORT.TABINDICATION_LIBELLE.N_CODE AND EFFORT.TABINDICATION_EFFORT.EFFORT_ID=id;
     
    begin
       FOR enr IN c
    	LOOP
    		result = result || enr.T_LIBELLE		
    		--DBMS_OUTPUT.PUT_LINE (result);
    	END LOOP;
    	return result;
    end;
    /

  2. #2
    Membre régulier
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2011
    Messages
    257
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Décembre 2011
    Messages : 257
    Points : 76
    Points
    76
    Par défaut
    j'avais simplement oublié un ';'

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Erreur syntaxe fonction somme
    Par shipuden64 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 09/04/2015, 15h21
  2. Erreur syntax near : requête SQL
    Par luchoo dans le forum ASP.NET
    Réponses: 6
    Dernier message: 10/06/2011, 12h16
  3. Erreur sur Fonction PL/SQL
    Par boudou dans le forum PL/SQL
    Réponses: 2
    Dernier message: 22/10/2007, 08h34
  4. erreur de syntax FROM requete SQL
    Par Drozo dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 10/08/2006, 16h33
  5. Erreur syntaxe SQL
    Par SaeZ dans le forum Requêtes
    Réponses: 2
    Dernier message: 28/06/2006, 13h04

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