字符串文字太长 - 如何将长 xml 数据分配给 oracle 11g r2 中的 clob 数据类型

string literal too long - how to assign long xml data to clob data type in oracle 11g r2(字符串文字太长 - 如何将长 xml 数据分配给 oracle 11g r2 中的 clob 数据类型)
本文介绍了字符串文字太长 - 如何将长 xml 数据分配给 oracle 11g r2 中的 clob 数据类型的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要将大约 30,000 行的非常大的 xml 数据分配给 oracle 数据库 11g r2 中的 CLOB 数据类型.我在 Oracle Sql Developer 中使用这个命令.

I need to assign a very large xml data of around 30,000 lines to a CLOB data type in oracle database 11g r2. I am using this command in Oracle Sql Developer.

当我使用以下命令时,首先我会收到 7 次 输入引用值 的提示,然后当语句执行完成时,我得到 - 'string literal too long` 错误.

When I use the following command, at first I get 7 prompts for entering quote value and then when statement execution completes, I get - 'string literal too long` error.

update tablename set columnName = 'large xml data' where id=1;

我在 xml 数据中使用了七个双(单引号)来转义单引号.

I used seven double (single quotes) inside the xml data to escape the single quotes.

如何将这些数据分配到 CLOB 列?

How to assign this data to the CLOB column?

推荐答案

一种方法是使用 sqlldr.首先,创建一个小的保存表:

One approach is to use sqlldr. First, create a small holding table:

create table tstclob
(
id number,
doc clob
);

假设你的大文档是文件c:data est_doc.txt",创建一个sqlldr控制文件(test_doc.ctl")来加载它:

Assuming your large document is the file "c:data est_doc.txt", create a sqlldr control file ("test_doc.ctl") to load it:

load data
infile *
replace 
into table tstclob
fields terminated by ','
(
 ID char(1),
 lob_file FILLER char,
  DOC LOBFILE(lob_file) TERMINATED BY EOF
 )
begindata
1,c:data	est_doc.txt

然后运行 ​​sqlldr(在本例中,从 c:data 目录):

Then run sqlldr (in this case, from c:data directory):

sqlldr control=test_doc.ctl userid=someuser@somedb/somepass

然后您可以使用 tstclob 表更新您想要的任何表.

You can then update whatever table you want using tstclob table.

这篇关于字符串文字太长 - 如何将长 xml 数据分配给 oracle 11g r2 中的 clob 数据类型的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Execute complex raw SQL query in EF6(在EF6中执行复杂的原始SQL查询)
Hibernate reactive No Vert.x context active in aws rds(AWS RDS中的休眠反应性非Vert.x上下文处于活动状态)
Bulk insert with mysql2 and NodeJs throws 500(使用mysql2和NodeJS的大容量插入抛出500)
Flask + PyMySQL giving error no attribute #39;settimeout#39;(FlASK+PyMySQL给出错误,没有属性#39;setTimeout#39;)
auto_increment column for a group of rows?(一组行的AUTO_INCREMENT列?)
Sort by ID DESC(按ID代码排序)