在oracle中注册大型xml架构时出错

时间:2016-07-06 19:00:41

标签: oracle

是否有任何解决方案可以在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:

2 个答案:

答案 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方法

相关问题