在Oracle表中插入XML会导致文件未找到错误
我正在尝试将XML文件插入到Oracle表中 我有movie.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
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') );