我正在尝试注册一个Xml模式来验证一些xml文档,使用Oracle plsql存储过程。这是一段代码:
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不是本地的,所以我必须将本地设置为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 :文件结束。
怎么了?有什么想法吗?
发布于 2012-08-21 14:58:32
由于代理或防火墙问题,DTD可能无法访问。您可以从XML模式中删除或注释DTD引用,并尝试注册它。
如果希望能够在不编辑模式的情况下注册模式,则需要确保在尝试注册模式之前,可以使用httpuritype()访问DTD的URL,而不会出现任何错误。
select httpuritype('http://www.w3.org/2001/XMLSchema.dtd').getClob() from dual;发布于 2015-04-04 22:38:10
ORA-03113意味着您的连接已失效。由于某种原因,您的客户端计算机和数据库服务器停止了对话。可能性:
看看你的警报日志。这里有更多信息:如何解决Oracle11g中的错误消息ORA-03113?
https://stackoverflow.com/questions/12056679
复制相似问题