XSR_EXTENTITY 过程
XSR_EXTENTITY 过程向 XML 模式存储库 (XSR) 注册外部实体。
模式为 SYSPROC。
授权
该过程的调用者的授权标识必须至少具有下列其中一种权限或特权:
- DBADM 权限。
- IMPLICIT_SCHEMA 数据库权限(如果 SQL 模式不存在)。
- CREATEIN 特权(如果 SQL 模式存在)。
- rschema
- 类型为 VARCHAR (128) 的输入和输出参数,用于指定外部实体的 SQL 模式。 SQL 模式是用来在 XSR 中标识此外部实体的 SQL 标识的一部分。 (SQL 标识的另一部分是由 name 参数提供的。) 此参数可以有一个空值,该值指示使用缺省 SQL 模式(如在 CURRENT SCHEMA 专用寄存器中所定义)。 应用于任何 SQL 标识的有效字符和定界符的规则也适用于此参数。 不能将以字符串“SYS”开头的关系模式用于此值。 XSR 对象不会与 XSR 外部存在的数据库对象发生名称冲突,因为 XSR 对象与 XML 模式存储库外部的对象在不同的名称空间中出现。 名称
- VARCHAR(128) 类型的输入和输出参数,它指定外部实体的名称。 外部实体的完整 SQL 标识为 rschema.name,并且对于 XSR 中的所有对象应该是唯一的。 此参数接受空值。 当为此参数提供空值时,就会生成一个唯一值并存储在 XSR 中。 应用于任何 SQL 标识的有效字符和定界符的规则也适用于此参数。 系统标识
- VARCHAR (1000) 类型的输入参数,它指定外部实体的系统标识。 外部实体的系统标识应该与 ENTITY 声明(如果使用的话,在前面添加关键字 SYSTEM 作为前缀)中的外部实体的统一资源标识相匹配。 此参数的值不能为空。 系统标识可与公用标识同时指定。 公用标识
- VARCHAR (1000) 类型的输入参数,它指定外部实体的公用标识。 外部实体的公用标识应该与 ENTITY 声明(如果使用的话,在前面添加关键字 PUBLIC 作为前缀)中的外部实体的统一资源标识相匹配。 此参数接受空值,且应仅在 XML 实例文档的 DOCTYPE 声明中或者在 ENTITY 声明中同时指定时使用。 内容
- BLOB (30M) 类型的输入参数,它包含外部实体文档的内容。 此参数的值不能为空。
示例
注册由系统标识 http://www.test.com/food/chocolate.txt 和 http://www.test.com/food/cookie.txt 标识的外部实体:
CALL SYSPROC.XSR_EXTENTITY ( 'FOOD' ,
'CHOCLATE' ,
'http://www.test.com/food/chocolate.txt' ,
NULL ,
:content_of_chocolate.txt_as_a_host_variable
)
CALL SYSPROC.XSR_EXTENTITY ( 'FOOD' ,
'COOKIE' ,
'http://www.test.com/food/cookie.txt' ,
NULL ,
:content_of_cookie.txt_as_a_host_variable
)