暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Oracle 12cR2数据库中的存储xml

askTom 2018-08-31
429

问题描述

你好!

我创建了一个数据库,以便存储xml。我要存储大量数据。有人告诉我,Oracle 12cR2允许存储xml并很好地处理它们。

我创建了一个带有xmltype列的表。

CREATE TABLE test.invoicexml
(
   id     NUMBER,
   data   xmltype
);
复制


然后我试图通过Toad for Oracle在该表中存储一个XML (大约4,443行,我没有粘贴到这里),并得到以下错误:
ORA-01704: string literal too long
复制


拜托,我需要帮助。

问候,

专家解答

这更可能与您如何将XML呈现给数据库以及您使用的数据类型有关。对于大型XML,您可以使用clob来容纳内容,然后插入到数据库中,例如

SQL> create table t ( id int, x xmltype);

Table created.

SQL>
SQL> set serverout on
SQL> declare
  2    c clob;
  3  begin
  4    dbms_lob.createtemporary(c,true);
  5
  6    c := '';
  7    for i in 1 .. 100
  8    loop
  9      c := c || ''||rpad('blah',1000,'x')||'';
 10    end loop;
 11    c := c || '';
 12    dbms_output.put_line('length = '||dbms_lob.getlength(c));
 13
 14    insert into t values (1, xmltype(c));
 15    dbms_lob.freetemporary(c);
 16  end;
 17  /
length = 101111

PL/SQL procedure successfully completed.
复制


「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论