【问题标题】:ORA-22288: passing xml file to SQL DevelopperORA-22288: 将 xml 文件传递​​给 SQL Developer
【发布时间】:2021-12-27 15:38:52
【问题描述】:

您知道如何解决此错误吗?该文件存在于我的计算机上,但出现了问题。我创建了一个 XML 文件,后来我为它创建了一个架构 (.xsd),现在我想将架构文件与我的 oracle 数据库连接起来,在这个函数之后,我将为这个架构创建一个表。

我也尝试将文件放在 oracle 目录中,但没有帮助。

BEGIN
  DBMS_XMLSCHEMA.registerSchema(
    SCHEMAURL => 'http://xmlns.oracle.com/xdb/documentation/peldesana.xsd',
    SCHEMADOC => bfilename('MAPE','peldesana.xsd'),
    LOCAL     => TRUE,
    GENTYPES  => FALSE, 
    GENTABLES => FALSE, 
    CSID      => nls_charset_id('AL32UTF8'));
END;

错误:

ORA-22285:FILEOPEN 操作的目录或文件不存在
ORA-06512:在“SYS.DBMS_LOB”,第 822 行
ORA-06512:在“XDB.DBMS_XMLSCHEMA”,第 131 行
ORA-06512:在第 2 行
22285. 00000 - “%s 操作的目录或文件不存在”

*原因:试图访问不存在的目录,或试图访问不存在目录中的文件。
*Action: 确保数据库字典中存在指定目录对应的系统对象,或者确保名称正确。

【问题讨论】:

  • 我创建了一个目录 'CREATE DIRECTORY 'MAPE AS 'C:\3_XML;'但它仍然没有帮助,尽管有一个文件 'peldesana.xsd'
  • "该文件存在于我的计算机上" - 数据库是否也在您的计算机上运行,​​或者您是否远程访问它?
  • 数据库正在我的电脑上运行

标签: sql xml xsd oracle-sqldeveloper


【解决方案1】:

创建一个目录是不够的。

目录,指向文件系统目录(文件夹)的对象,由SYS创建。

SQL> connect sys as sysdba
Enter password:
Connected.
SQL> create or replace directory xml_dir as 'c:\temp';

Directory created.

然后您必须在该目录上授予权限给将要使用它的用户。如果您只从中读取数据,请授予read;如果您还要在那里创建文件,请同时授予 write

SQL> grant read, write on directory xml_dir to scott;

Grant succeeded.

SQL>

现在,用户 scott 将能够访问其中的目录和文件。

【讨论】:

  • 我是用sys账号管理数据库的,应该没有访问权限的问题。
  • 但是由于某种原因我无法访问该文件,我检查了它在正确的位置,但我仍然收到错误 ORA-22288: file or LOB operation FILEOPEN failed 系统找不到指定的文件。
【解决方案2】:

最后我再次生成了.xsd 文件(使用相同的.xml 文件)。然后我又添加了一行(OPTIONS => 2),现在一切正常。

BEGIN
  DBMS_XMLSCHEMA.registerSchema(
    SCHEMAURL => 'http://xmlns.oracle.com/xdb/documentation/peldesana2.xsd',
    SCHEMADOC => bfilename('INPUT_DIR','peldesana2.xsd'),
    LOCAL     => TRUE,
    GENTYPES  => FALSE, 
    GENTABLES => FALSE, 
    CSID      => nls_charset_id('AL32UTF8'),
    OPTIONS    => 2);
END;

【讨论】:

    猜你喜欢
    • 2011-06-27
    • 2011-10-17
    • 2014-07-09
    • 2011-09-07
    • 1970-01-01
    • 1970-01-01
    • 2012-08-13
    • 2017-10-19
    • 1970-01-01
    相关资源
    最近更新 更多