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 !!