1
你好我有以下XML代碼:如何解析XML文件,並在其上運行
<?xml version="1.0" encoding="UTF-8" standalone="true"?>
<SeznamOvmIndex>
<Subjekt>
<Zkratka>CUZK</Zkratka>
<ICO>00025712</ICO>
<Nazev>Český úřad zeměměřický a katastrální</Nazev>
<AdresaUradu>
<AdresniBod>25133616</AdresniBod>
<UliceNazev>Pod sídlištěm</UliceNazev>
<CisloDomovni>1800</CisloDomovni>
<CisloOrientacni>9</CisloOrientacni>
<ObecNazev>Praha</ObecNazev>
<ObecKod>554782</ObecKod>
<PSC>18200</PSC>
<KrajNazev>Hlavní město Praha</KrajNazev>
</AdresaUradu>
<Email>
<Polozka>
<Typ text="podatelna">2</Typ>
<Email>[email protected]</Email>
<Poznamka>Elektronická podatelna ČÚZK</Poznamka>
</Polozka>
</Email>
<TypSubjektu id="11">Orgán státní správy</TypSubjektu>
<PravniForma type="325">Organizační složka státu</PravniForma>
<PrimarniOvm>Ano</PrimarniOvm>
<IdDS>uuaaatg</IdDS>
<TypDS>OVM</TypDS>
<StavDS>1</StavDS>
<StavSubjektu>1</StavSubjektu>
<DetailSubjektu>http://seznam.gov.cz/ovm/datafile.do?format=xml&service=seznamovm&id=CUZK</DetailSubjektu>
</Subjekt>
</SeznamOvmIndex>
,我試圖提取值我對它們進行操作。我寫了下面的PL/SQL代碼:
DECLARE
xmlClob CLOB;
xmlFile BFILE;
x XMLType;
src_offset number := 1 ;
dest_offset number := 1 ;
lang_ctx number := DBMS_LOB.DEFAULT_LANG_CTX;
warning integer;
BEGIN
xmlFile := BFILENAME('d:\xml_files', 'example.xml');
DBMS_LOB.CREATETEMPORARY(xmlClob, true);
DBMS_LOB.FILEOPEN(xmlFile, DBMS_LOB.FILE_READONLY);
DBMS_LOB.LOADCLOBFROMFILE(xmlClob, xmlFile, DBMS_LOB.LOBMAXSIZE, src_offset,
dest_offset, DBMS_LOB.DEFAULT_CSID, lang_ctx, warning);
x := XMLType.createXML(xmlClob);
DBMS_LOB.FILECLOSEALL();
DBMS_LOB.FREETEMPORARY(xmlClob);
FOR r IN (
SELECT ExtractValue(Value(p),'/Subjekt/Zkratka/text()') as kod
,ExtractValue(Value(p),'/Subjekt/AdresaUradu/UliceNazev/text()') as ulice
,ExtractValue(Value(p),'/Subjekt/AdresaUradu/CisloDomovni/text()') as cislo_domovni
,ExtractValue(Value(p),'/Subjekt/AdresaUradu/CisloOrientacni/text()') as cislo_orientacni
FROM TABLE(XMLSequence(Extract(x,'/SeznamOvmIndex/Subjekt'))) p
WHERE ExtractValue(Value(p),'/Subjekt/Zkratka/text()') = 'CUZK'
) LOOP
dbms_output.put_line(r.kod||' '||r.ulice||' '||r.cislo_domovni||'/'||r.cislo_orientacni);
END LOOP;
END;
,但我得到的錯誤: 22285. 00000 - 「不存在的目錄或文件%s的操作」 *原因:試圖訪問一個目錄不存在或嘗試 訪問不存在的目錄中的文件。 *操作:確保數據庫字典中存在與指定的 目錄對應的系統對象,或確保名稱正確。