当前位置: 首页 > 面试题库 >

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

蒋烨然
2023-03-14
问题内容

我需要为Oracle数据库11g r2中的CLOB数据类型分配大约30,000行的非常大的xml数据。我在Oracle Sql
Developer中使用此命令。

当我使用以下命令时,首先会得到7条提示entering quote value,然后在语句执行完成时,出现“字符串文字太长”错误。

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

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

如何将此数据分配给CLOB列?


问题答案:

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

create table tstclob
(
id number,
doc clob
);

假设您的大型文档是文件“ c:\ data \ test_doc.txt”,请创建一个sqlldr控制文件(“ test_doc.ctl”)以加载该文件:

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\test_doc.txt

然后运行sqlldr(在这种情况下,从c:\ data目录):

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

然后,您可以使用tstclob表更新所需的任何表。



 类似资料:
  • 本文向大家介绍VBA 分配长字符串文字,包括了VBA 分配长字符串文字的使用技巧和注意事项,需要的朋友参考一下 示例 VBA编辑器每行只允许1023个字符,但是通常只有前100-150个字符可见而不滚动。如果需要分配长字符串文字,但又想保持代码可读性,则需要使用行连续和串联来分配字符串。 VBA允许您使用有限数量的行连续(实际数量根据连续块中每行的长度而变化),因此,如果您的字符串很长,则需要使用

  • 问题内容: 我喜欢过滤掉字符串长度不等于10的数据。 如果我尝试过滤掉列A或B的字符串长度不等于10的任何行,则尝试这样做。 这工作缓慢,但正在工作。 但是,当A中的数据不是字符串而是数字(有时在read_csv读取输入文件时解释为数字)时,有时会产生错误。 我相信应该有更高效,更优雅的代码来代替。 根据下面的答案和评论,我找到的最简单的解决方案是: 要么 要么 问题答案: 应用于filex.cs

  • 我使用的mysql2库与NodeJS。我在本地机器和服务器上有相同的代码和数据库结构。当我上传一张照片到“照片”表时,在我的本地机器上,它工作正常。当我使用服务器时,我得到以下错误: {错误:数据太长,列'照片'在第1行Packet.as错误(/srv/project/server/node_modules/mysql2/lib/数据包/packet.js:716: 13)在查询。Command.

  • 问题内容: 有没有比下面的示例更快的方法来找到Pandas DataFrame中最长字符串的长度? 使用IPython的进行计时大约需要10秒钟。 问题答案: DSM的建议似乎是您无需进行一些手动微优化就能获得的最佳效果: 请注意,显式使用该方法似乎并没有多大改进。如果您不熟悉IPython(这是非常方便的语法所来自的地方),我绝对建议您尝试一下,以快速测试此类内容。 更新 添加了屏幕截图:

  • 问题内容: 有MySQL函数可以执行此操作(当然不是)吗? 问题答案: 您正在寻找获取字符串中的字符数。 对于多字节字符集,将为您提供字符串占用的字节数,同时将返回字符数。

  • 我得到这个错误'ORA-01704:字符串文字太长',而我试图插入数据从SQL表在Oracle表。在我的Oracle表中,我有一个XMLTYPE列类型的列。当我创建表时,我指定了这样的XML列: 除此列之外,在它之前还有其他23列,当我从insert语句XML列中排除时,insert正在传递。XML列包含表中所有其他23列的XML格式数据。我是否应该在XML列中为长度或其他内容添加一些附加规范?