【发布时间】:2016-01-14 23:28:18
【问题描述】:
我在 oracle 中有一个带有 BLOB 列的表,它可以存储 XML 以及 XMLs 压缩。这些是客户的要求,不能更改。这些表将被创建,我必须阅读和处理BLOBs 中的一些信息。
我进行了研究,任何不清楚的解决方案对我来说都很清楚或有效。
我面临的问题是 INSERT XML 普通数据大于 2000 bytes 和 utl_raw.cast_to_raw 使用 DBeaver 作为数据库管理器。我收到了消息:
SQL Error [6502] [65000]: ORA-06502: PL/SQL: numeric or value error: raw variable length too long ORA-06512: at "SYS.UTL_RAW", line 224
java.sql.SQLException: ORA-06502: PL/SQL: numeric or value error: raw variable length too long
ORA-06512: at "SYS.UTL_RAW", line 224
问题
- 我研究过
UTL_RAW不能长于2000 bytes - 似乎
4000 bytes在Oracle 中对BLOBs有另一个限制
我可以为这些情况做些什么?
【问题讨论】:
-
你想做什么?将 zip 文件加载到 blob 列中?
-
感谢您的关注。我面临的问题是使用 utl_raw.cast_to_raw 插入大于 2000 字节的 XML 纯数据
-
你用什么插入数据。 SQPLUS 还是 java 应用?
-
我使用 DBeaver,但我敢打赌 SQLPlus 和其他人也会遇到问题。
-
如果我理解,您正在尝试使用常规 SQL 插入 zip-ed xml 文档?正在做类似的事情
insert into table values(utl_file.UTL_RAW.CAST_TO_RAW('.....')?
标签: sql oracle blob database-management dbeaver