在Oracle表中插入XML会导致文件未找到错误

在Oracle表中插入XML会导致文件未找到错误,xml,oracle,Xml,Oracle,我正在尝试将XML文件插入到Oracle表中 我有movie.xml表: name type TITLE VARCHAR2(100) ARTIST VARCHAR2(100) COUNTRY VARCHAR2(15) COMPANY VARCHAR2(10) PRICE NUMBER(10,2) YEAR NUMBER(4) 程序 create or replace p

我正在尝试将XML文件插入到Oracle表中

我有movie.xml表:

name           type
TITLE          VARCHAR2(100)
ARTIST         VARCHAR2(100)
COUNTRY        VARCHAR2(15)
COMPANY        VARCHAR2(10)
PRICE          NUMBER(10,2)
YEAR           NUMBER(4)
程序

   create or replace procedure moviesxml as
    movies_doc xmltype := xmltype( bfilename('isop','movie.xml'),nls_charset_id('UTF-8') );

BEGIN

   insert into moviexml(title,artist,country,company,price,year) 
   select title,artist,country,company,price,year from  xmltable(
 '/catalog/cd'
  passing movies_doc
  columns  title   varchar2(100) path  'title',
      artist    varchar(100)        path 'artist',
      country varchar2(15) path 'country',
      company varchar2(10) path 'company',
      price   number(10,2) path 'price',
      year number path 'year'
);
end moviesxml;
错误为ORA-22288:文件或LOB操作FILEOPEN在系统中失败 找不到指定的文件。ORA-06512:在“SYS.DBMS_LOB”第523行 ORA-06512:“SYS.XMLTYPE”,第287行


但是,我在isop目录中有这个文件。

首先需要为isop创建一个目录对象,以便它在服务器中找到文件路径

CREATE DIRECTORY isop AS '/isop';

movies_doc xmltype := xmltype( bfilename('ISOP','movie.xml'),nls_charset_id('UTF-8') );
和isop包含xml文件,如您的示例所示

如果你有绝对路径

CREATE DIRECTORY isop AS 'C:\isop';

movies_doc xmltype := xmltype( bfilename('ISOP','movie.xml'),nls_charset_id('UTF-8') );

首先,需要为isop创建一个目录对象,以便它在服务器中找到文件路径

CREATE DIRECTORY isop AS '/isop';

movies_doc xmltype := xmltype( bfilename('ISOP','movie.xml'),nls_charset_id('UTF-8') );
和isop包含xml文件,如您的示例所示

如果你有绝对路径

CREATE DIRECTORY isop AS 'C:\isop';

movies_doc xmltype := xmltype( bfilename('ISOP','movie.xml'),nls_charset_id('UTF-8') );