首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何简单地加载CLOB

如何简单地加载CLOB
EN

Stack Overflow用户
提问于 2018-04-16 20:45:02
回答 1查看 67关注 0票数 0

下面允许我很好地解析XML文件,但我想知道如何简化语法,使之不需要clob_pointer.txt文件,并直接指定xml。我尝试了location(XMLDIR:'XYZ.XML'),但没有成功。

代码语言:javascript
复制
DROP TABLE EXT_CLOB_TABLE;
CREATE TABLE EXT_CLOB_TABLE
(
    CLOB_CONTENT CLOB
)
ORGANIZATION EXTERNAL
(
    TYPE ORACLE_LOADER
    DEFAULT DIRECTORY XMLDIR
    ACCESS PARAMETERS
(
FIELDS TERMINATED BY ','
(
  CLOB_POINTER CHAR(200)
)
COLUMN TRANSFORMS (CLOB_CONTENT FROM LOBFILE(CLOB_POINTER) FROM (XMLDIR) 
CLOB)
)
   LOCATION('clob_pointer.txt')
);


CREATE OR REPLACE VIEW ext_xml_view
AS
SELECT xmltype(CLOB_CONTENT) xml FROM ext_clob_table;  

SELECT * FROM ext_xml_view;

我试着把地点更改为:

代码语言:javascript
复制
location(XMLDIR:'XYZ.XML')

但有以下错误;

ORA- 29913 :执行ODCIEXTTABLEFETCH标注ORA-29400时出错:打开文件/u01/oracle/product/11.2.0.4/db/rdbms/xml/ 29913。00000 -“执行%s标注中的错误”*原因:执行指定的标注会导致错误。*操作:检查错误消息,采取适当的操作。

EN

回答 1

Stack Overflow用户

发布于 2018-04-19 07:36:29

假设您的XML文件名为clob_pointer.txt,那么您可以使用(类似于

代码语言:javascript
复制
select
    xmltype(
        xmlData => bfilename('XMLDIR', 'clob_pointer.txt'),
        csid => nls_charset_id('AL32UTF8')
    )
from dual;

sys.xmltype有一个接受bfile定位器的构造函数。当然,由于它不知道文件中使用的字符集,因为在本例中它是Oracle的二进制文件,所以您还必须向csid参数提供字符集标识符。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/49865945

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档