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 :
par contre le site d'oracle
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) };
http://www.oracle.com/technology/ora...o33devxml.html
c pas la même syntaxe...
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)...
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
ma requete ressemble à
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 : ";" ... '
une idée..
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 ;
merci d'avance !!
Partager