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:类LobCompressor不存在ORA-06512:at “MY_USER.PKG_COMPRESSOR”,第10行ORA-06512:at “MY_USER.PKG_COMPRESSOR”,第39行ORA-06512:第13行
dr.CONFIG_XML没有空/非空值
正确的脚本工作需要做些什么?
PS这是我第一次尝试在pl sql中使用java类
答案 0 :(得分:1)
我认为现在压缩XMLTYPE和/或LOB最有用的方法是在表空间级别进行压缩。
创建XMLTYPE或任何LOB的列时,您必须指定LOB_storage_clause。压缩存储此类对象的整个表空间。
在早期版本中,二进制XML数据默认存储在a中 BasicFiles LOB。从Oracle Database 11g第2版开始 (11.2.0.2),如果COMPATIBLE初始化参数是11.2或 更高,您不指定BASICFILE或SECUREFILE,然后指定二进制XML 数据尽可能存储在SecureFiles LOB中。如果是SecureFiles LOB存储是不可能的,然后二进制XML数据存储在一个 BasicFiles LOB。
SecureFiles提供压缩,重复数据删除和加密。