我有大(1 Mb +)XML文件存储在本地文件夹中(例如:c:\ temp \ data.xml),应该在XMLTYPE变量中加载
我该怎么做?
答案 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