我正在尝试使用 Oracle plsql 存储过程注册一个 Xml 模式来验证一些 xml 文档。这是一段代码:
begin
dbms_xmlschema.registerschema(
schemaurl => 'http://www.w3.org/TR/xmldsig-core/xmldsig-core-schema.xsd',
SCHEMADOC => bfilename('XMLDIR','xmldsig-core-schema.xsd'),
local => false,
gentypes => false,
gentables => false,
);
end;
我的 XML 模式不是本地的,所以我必须将local设置为false。我确切地说所有这些语句都是在 SYS 用户下执行的。
我已经创建了一个目录并通过以下命令授予每个人访问权限:
create or replace directory XMLDIR as '/absolute/path/to/xmlschema';
create public synonym XMLDIR for XMLDIR;
GRANT ALL ON DIRECTORY XMLDIR TO PUBLIC;
我注意到,如果在我运行第一个 plsql 块之前磁盘上不存在文件xmldsig-core-schema.xsd,则结果是ORA-22288错误(文件或 LOB 操作字符串失败字符串)。所以我之前创建了xmldsig-core-schema.xsd文件。
当我运行 *dbms_xmlschema.registerschema...* 我收到错误ORA-03113 : end-of-file on communication channel
怎么了 ?有任何想法吗 ?