【问题标题】:Insert into table with xmltype column from a xml file从 xml 文件中插入带有 xmltype 列的表
【发布时间】:2014-05-09 11:50:14
【问题描述】:

以下是我插入 xml 文件的查询

INSERT INTO sampletagtable VALUES ( 1 , XMLType(bfilename('xmldir3', 'book.xml') , nls_charset_id('AL32UTF8') ));

在此之前,我通过以下查询创建了 xmldir3,

CREATE OR REPLACE DIRECTORY xmldir3 AS '/opt/user/nishanth/xmldir';

这里 /opt/user/nishanth 是我的 linux 操作系统中的一个目录。

book.xml 在该指定目录中。

我收到以下错误,

SQL Error: ORA-22285: non-existent directory or file for FILEOPEN operation
ORA-06512: at "SYS.XMLTYPE", line 296
ORA-06512: at line 1
22285. 00000 -  "non-existent directory or file for %s operation"
*Cause:    Attempted to access a directory that does not exist, or attempted
           to access a file in a directory that does not exist.
*Action:   Ensure that a system object corresponding to the specified
           directory exists in the database dictionary, or
           make sure the name is correct.

【问题讨论】:

    标签: oracle insert oracle11g xmltype


    【解决方案1】:

    您将目录创建为xmldir3,这是一个不带引号的标识符,因此它在数据字典中是大写的。但是然后您以小写形式引用它。你需要使用:

    bfilename('XMLDIR3', 'book.xml')
    

    您可以通过查询all_directories视图查看实际目录名称:

    SQL> CREATE OR REPLACE DIRECTORY xmldir3 AS '/opt/user/nishanth/xmldir';
    
    Directory created.
    
    SQL> SELECT directory_name, directory_path FROM all_directories;
    
    DIRECTORY_NAME                 DIRECTORY_PATH
    ------------------------------ ----------------------------------------
    XMLDIR3                        /opt/user/nishanth/xmldir
    ...
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-01-31
      • 2014-12-13
      • 2020-05-09
      • 1970-01-01
      • 1970-01-01
      • 2015-02-08
      • 1970-01-01
      相关资源
      最近更新 更多