Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从文件系统解析XML时出错_Xml - Fatal编程技术网

从文件系统解析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

我试图从文件系统加载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'
创建一个目录