2017-09-19 41 views
0

我正在從工作簿做示例。我創建了表格並插入了幾條記錄。下面是我的代碼:XMLQuery與Oracle

創建表:

CREATE TABLE test_Pracownicy 
(IDPracownika NUMBER(3), 
Dane XMLTYPE); 

插入記錄表:

INSERT INTO test_Pracownicy (IDPracownika, Dane) 
VALUES (1, 
    XMLTYPE(' 
    <PRecord> 
     <Nazwisko>Kowalski</Nazwisko> 
     <Imie>Jan</Imie> 
     <RokUrodz>1980</RokUrodz> 
     <Wzrost>1.77</Wzrost> 
     <DataZatr>2001/02/10</DataZatr> 
    </PRecord>') 
); 

現在我想運行的XMLQuery:

SELECT IDPracownika, 
    XMLQuery(
    'FOR $i IN /PRecord 
     WHERE $i /Nazwisko = "Kowalski" 
     ORDER BY $i/Imie 
     RETURN $i' 
    PASSING by VALUE Dane 
    RETURNING CONTENT) NazwiskoXML 
FROM test_Pracownicy; 

和我出現錯誤:

ORA-19114: XPST0003 - error during parsing the XQuery expression: 
LPX-00801: XQuery syntax error at 'i' 
1 FOR $i IN /PRecord 
-  ^
19114. 00000 - "error during parsing the XQuery expression: %s" 
*Cause: An error occurred during the parsing of the XQuery expression. 
*Action: Check the detailed error message for the possible causes. 
Error at Line: 117 Column: 6 

回答

0

我改變了查詢小(其中,回報...)的信件,它的workging:

SELECT IDPracownika, 
    XMLQuery(
    'for $i in /PRecord 
     where$i /Nazwisko = "Kowalski" 
     order by $i /Imie 
     retrun $i' 
    PASSING by VALUE Dane 
    RETURNING CONTENT) NazwiskoXML 
FROM test_Pracownicy; 

這是區分大小寫。