从文件系统解析XML时出错
我试图从文件系统加载XML,以便提取一些值。 以下是我迄今为止所做的尝试:从文件系统解析XML时出错,xml,Xml,我试图从文件系统加载XML,以便提取一些值。 以下是我迄今为止所做的尝试: 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
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;
但我得到了一个错误:
2228500000-“不存在%s操作的目录或文件”
*原因:试图访问不存在的目录,或尝试
访问不存在的目录中的文件。
*操作:确保系统对象与指定的
数据库字典中存在目录,或
确保名称正确。而不是使用
BFILENAME('d:\xml\u files','example.xml')代码>
必须使用oracle目录,如
BFILENAME('INPUT_DIR','example.xml')代码>
使用
从dba_目录中选择*
获取目录列表
及
将目录输入目录创建为'C:\tempdir'
创建一个目录