如何从文件加载XMLTYPE?

时间:2016-01-25 10:18:17

标签: oracle plsql

我有大(1 Mb +)XML文件存储在本地文件夹中(例如:c:\ temp \ data.xml),应该在XMLTYPE变量中加载

我该怎么做?

1 个答案:

答案 0 :(得分:1)

Oracle XMLTYPE字段的大小限制应为4 GB,因此在加载大小为1 MB的文件时不会遇到问题。 您必须在Oracle目录(在数据库服务器上)上创建,将xml文件放入创建的目录中,然后按如下方式执行插入:

oracle@server>mkdir yourdirectory
oracle@server>chown youroracleaccount.youroraclegroup yourdirectory
SQL> CREATE OR REPLACE DIRECTORY XMLDIR AS 'YOURDESIREDPATH'
SQL> GRANT read, write ON DIRECTORY XMLDIR TO <DESIREDORACLESCHEMA>
SQL> INSERT INTO YOURTABLE VALUES (...., XMLType(bfilename('XMLDIR', 'yourfilename.xml') , nls_charset_id('YOURCHARSETID') ));
SQL> commit;

如果你想把你的xml放在一个变量中,你必须创建一个外部表,例如如下(但你可以按照你的需要调整这个样本):

CREATE TABLE YOURXMLTABLE (doc CLOB)
ORGANIZATION EXTERNAL
(
TYPE ORACLE_LOADER
DEFAULT DIRECTORY xmlfile_dir
ACCESS PARAMETERS
(
FIELDS (lobfn CHAR TERMINATED BY ',')
COLUMN TRANSFORMS (doc FROM lobfile (lobfn))
)
LOCATION ('yourfilename.xml')
)
REJECT LIMIT UNLIMITED;

然后执行

select * into XMLTYPVARIABLE from XMLTABLE 

此致 Giova