java - 如何在Oracle中压缩XML(CLOB数据)?

标签 java oracle plsql compression clob

Oracle 11.2.0.4

我尝试通过 java 类方法 href 压缩 XML (XMLTYPE dbfield): LOB compression

该类已成功编译。

SELECT  OBJECT_NAME,
        OBJECT_TYPE
    FROM DBA_OBJECTS
    WHERE OBJECT_NAME LIKE '%LobCompress%'
    ORDER BY 1;
-------------------

OBJECT_NAME OBJECT_TYPE
LobCompressor   JAVA CLASS
LobCompressor   JAVA SOURCE

但是调用此方法时,RT 中出现错误:

DECLARE
dr MY_USER.ORDER_CONFIG%ROWTYPE;
bZipped BLOB;
...
SELECT * INTO dr
            FROM MY_USER.ORDER_CONFIG oc
            WHERE oc.ORDER_NO = '3751017';


bZipped := MY_USER.PKG_COMPRESSOR.CLOB_COMPRESS(dr.CONFIG_XML);

ORA-29540: class LobCompressor does not exist ORA-06512: at "MY_USER.PKG_COMPRESSOR", line 10 ORA-06512: at "MY_USER.PKG_COMPRESSOR", line 39 ORA-06512: at line 13

dr.CONFIG_XML 没有空/非空值

我需要做什么才能使脚本正确工作?

PS 这是我第一次尝试在 pl sql 中使用 java 类

最佳答案

我认为现在压缩 XMLTYPE 和/或 LOB 最有用的方法是在表空间级别进行压缩。

当您创建 XMLTYPE 或任何 LOB 列时,您必须指定 LOB_storage_clause 。压缩存储此类对象的整个表空间。

另请参阅XMLType_storage :

In earlier releases, binary XML data is stored by default in a BasicFiles LOB. Beginning with Oracle Database 11g Release 2 (11.2.0.2), if the COMPATIBLE initialization parameter is 11.2 or higher and you do not specify BASICFILE or SECUREFILE, then binary XML data is stored in a SecureFiles LOB whenever possible. If SecureFiles LOB storage is not possible then the binary XML data is stored in a BasicFiles LOB.

SecureFiles 提供压缩、重复数据删除和加密功能。

关于java - 如何在Oracle中压缩XML(CLOB数据)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45994800/

相关文章:

sql - PL/SQL Developer 中的查询执行时间

java - Spring MVC + hibernate : BeanCreationException error after regenerating model classes

Oracle - 如何从 YEAR、WEEKNUM 和 WEEKDAY 获取日期?

oracle - 在Oracle 11g DBMS_SCHEDULER的repeat_interval中使用PL/SQL表达式

sql - java.sql.SQLSyntaxErrorException : ORA-00955: name is already used by an existing object

sql - 在 Oracle10g 中有条件地选择多个列

oracle - 使用 .vimrc 在 Vim 中自动折叠 Oracle 内联 View

java - 我应该使用 java collection sort() 还是实现我自己的?

java - NullPointerExceptions 仅在某些 Samsung Galaxy 设备上出现?

java - 如何测试 Java 应用程序的输入和输出?