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 :

[Xquery & Oracle 10gr2] - fonctions


Sujet :

SQL Oracle

  1. #1
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut [Xquery & Oracle 10gr2] - fonctions
    bonjour !!

    j'ai un doute sur la creattion d'une fonction dans un bloc Xquery.

    en effet le bouquin XQUERY chez Oreilly creer la fonction comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    declare function local:draw_component($namecmp as xs:string?, $inputtype as xs:string?) as xs:string? {			
    return ($namecmp)
    };
    par contre le site d'oracle

    http://www.oracle.com/technology/ora...o33devxml.html
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    define function star-count($movie-id) {
      let $review-doc := document(
       "movie-reviews.xml")
      return avg($review-doc/reviews/
        review[movie-id = $movie-id]/stars)...
    c pas la même syntaxe...

    et dans mon appli suivant le cas j'ai soit cette erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ORA-19114: erreur au cours de l'analyse de l'expression XQuery : oracle.xquery.XQException: Echec de l'analyse : 'Lexical error at line 2, column 32.  Encountered: " "
    (32), after : "function"'

    soit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    ORA-19114: erreur au cours de l'analyse de l'expression XQuery : oracle.xquery.XQException: Echec de l'analyse : '"for $" détecté(e) à la ligne 5, colonne 17.
    Attendu :
    ";" ...
     
    '
    ma requete ressemble à
    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
     
    SELECT 
    	XmlElement("div",
    		XmlAttributes('tabber' class),
    		XMLQuery(
    		'
    		define function draw_component($namecmp, $inputtype) as xs:string* {			
    			return ($namecmp)
    		}
    		for $tabsname in distinct-values(ora:view("mini_fields")/ROW/VGROUP/text())
    		return
    		<div class=''tabbertab''>
    			<h3>{$tabsname}</h3>
    			{
    			for $zonename in distinct-values(ora:view("mini_fields")/ROW[VGROUP=$tabsname]/SGROUP/text())
    			return
    			<fieldset>
    				<legend>{$zonename}</legend>
    				{
    					for $input in ora:view("VWFLDLST")/ROW[VGROUP=$tabsname][SGROUP=$zonename]
    					let $inputname := $input/NOM/text()
    					let $inputtype := $input/DTYPE/text()
    					return (draw_component($inputname,$inputtype))
    				}
    			</fieldset>
    			}
    		</div>
    		' RETURNING CONTENT
    		)		
    	) as skel
    FROM dual ;
    une idée..

    merci d'avance !!

  2. #2
    Membre régulier Avatar de jacquesh
    Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    269
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Février 2005
    Messages : 269
    Points : 119
    Points
    119
    Par défaut
    si ca aide quelqu'un...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    XMLQuery('	
    		declare function local:draw_component($labelcmp, $namecmp, $inputtype) as element()? 
    		{
    			...
    		};for...
    NOTE :: PAS DE RETOUR A LA LIGNE APRES LE ';' sinon ERROR !!

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

Discussions similaires

  1. [Oracle 10] Fonction ROWNUM avec condition
    Par SQL_Pour_les_Nuls dans le forum Langage SQL
    Réponses: 6
    Dernier message: 03/07/2006, 15h06
  2. Instalation Oracle 10gR2 sous AIX 5.3
    Par Wurlitzer dans le forum Oracle
    Réponses: 1
    Dernier message: 18/06/2006, 10h25
  3. Réponses: 7
    Dernier message: 03/05/2006, 09h05
  4. Réponses: 11
    Dernier message: 27/04/2006, 15h03
  5. Réponses: 8
    Dernier message: 04/10/2005, 19h27

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