是否有任何解决方案可以在oracle中注册大型XML模式。
当我尝试使用dbms_xmlschema.registerSchema注册XML模式(<32KB)时,它已经成功。
但是当XML模式的大小(> 32KB)时,会出现错误消息:
Error report:
ORA-06550: line 4, column 49:
PLS-00172: string literal too long
06550. 00000 - "line %s, column %s:\n%s"
*Cause: Usually a PL/SQL compilation error.
*Action:
答案 0 :(得分:1)
DBMS_XMLSCHEMA.REGISTERSCHEMA()
被重载以采用多种不同的类型:
DBMS_XMLSCHEMA.REGISTERSCHEMA(
schemaurl IN VARCHAR2,
schemadoc IN VARCHAR2,
local IN BOOLEAN := TRUE,
gentypes IN BOOLEAN := TRUE,
genbean IN BOOLEAN := FALSE,
gentables IN BOOLEAN := TRUE,
force IN BOOLEAN := FALSE,
owner IN VARCHAR2 := NULL,
enablehierarchy IN PLS_INTEGER := DBMS_XMLSCHEMA.ENABLE_CONTENTS,
options IN PLS_INTEGER := 0);
将schemadoc
参数作为VARCHAR2
,在PL / SQL中为limited to 32,767 bytes。
DBMS_XMLSCHEMA.REGISTERSCHEMA(
schemaurl IN VARCHAR2,
schemadoc IN CLOB,
local IN BOOLEAN := TRUE,
gentypes IN BOOLEAN := TRUE,
genbean IN BOOLEAN := FALSE,
force IN BOOLEAN := FALSE,
owner IN VARCHAR2 := NULL,
options IN PLS_INTEGER := 0);
将schemadoc
参数作为CLOB
limited to 128TB。
您没有指定用于调用过程的数据类型,但看起来您传递VARCHAR2
并且您可能想要传递CLOB
(或其他类型之一)有更大的限制)。
答案 1 :(得分:0)
使用BFILE从文件系统中读取XML Schema要好得多,或者将其预先加载到XDB Repository然后使用registerURI方法