[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:
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:
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...8O
et dans mon appli suivant le cas j'ai soit cette erreur
Code:
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:
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:
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 !!