sql - "ORA-22812: cannot reference nested table column' s 存储表”尝试访问系统表时

标签 sql oracle oracle12c xmltype nested-table

我的 Oracle 12c 数据库中有一个表

XML 架构创建:

BEGIN
-- Register the schema
DBMS_XMLSCHEMA.registerSchema('http://www.example.com/fvInteger_12.xsd',
'<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="FeatureVector">
<xs:complexType>
<xs:sequence>
<xs:element name="feature" type="xs:integer" minOccurs="12" maxOccurs="12"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>',
   TRUE, TRUE, FALSE);
END;
/

创建表:

CREATE TABLE fv_xml_12_1000 (
   id    NUMBER,
   fv  XMLTYPE)
   XMLTYPE fv STORE AS OBJECT RELATIONAL
      XMLSCHEMA "http://www.example.com/fvInteger_12.xsd"
      ELEMENT "FeatureVector";

表 DDL:

SELECT 
DBMS_METADATA.GET_DDL( 'TABLE','FV_XML_12_1000') 
FROM DUAL;

上面查询的结果:

  CREATE TABLE "HIGIIA"."FV_XML_12_1000"
   (    "ID" NUMBER,
    "FV" "SYS"."XMLTYPE"
   ) SEGMENT CREATION IMMEDIATE
  PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255
 NOCOMPRESS LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"
 VARRAY "FV"."XMLDATA"."feature" STORE AS TABLE "SYS_NTZqNkxcSIThTgU5pCWr3HmA=="

 (( PRIMARY KEY ("NESTED_TABLE_ID", "SYS_NC_ARRAY_INDEX$")
  USING INDEX PCTFREE 10 INITRANS 2 MAXTRANS 255 COMPUTE STATISTICS
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS"  ENABLE)
PCTFREE 10 PCTUSED 40 INITRANS 1 MAXTRANS 255 LOGGING
  STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
  PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
  BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
  TABLESPACE "USERS" ) RETURN AS LOCATOR
  XMLTYPE COLUMN "FV" XMLSCHEMA "http://www.example.com/fvInteger_12.xsd" ELEMEN
T "FeatureVector" ID 4129

我想访问这个表,它位于 HIGIIA 模式内(它实际上位于 higiia 的 user_tables 中)。 :

SYS_NTZqNkxcSIThTgU5pCWr3HmA==

但是,我无法执行该命令:

desc SYS_NTZqNkxcSIThTgU5pCWr3HmA==

因为我收到错误:

SP2-0565: Identificador invalido.

查询:

select * from "SYS_NTZqNkxcSIThTgU5pCWr3HmA=="

返回错误:

ORA-22812: cannot reference nested table column's storage table

我应该如何访问此表(表 SYS_NTZqNkxcSIThTgU5pCWr3HmA==)?

提前致谢!

最佳答案

虽然列FV是嵌套表,但不能像表一样访问它。所有访问都必须通过表 FV_XML_12_1000。

SELECT *
  FROM TABLE( SELECT FV
                FROM FV_XML_12_1000);

关于sql - "ORA-22812: cannot reference nested table column' s 存储表”尝试访问系统表时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49213497/

相关文章:

sql - 按查询挑战分组

mysql - 为跨多个表的数据创建汇总行

oracle - 找不到 JDBC 驱动程序类 : oracle. jdbc.OracleDriver

oracle - 在 oracle 数据库 12c 中删除对象而不生成归档日志

oracle11g - 从 11g 数据库导出时出现 Oracle 12c 数据泵错误

php - 关于某些模板的数组排列

java - 如何通过 JDBC 使用包含问号 "?"的 PostgreSQL JSON(B) 运算符

java - 使用 Oracle DB 的 Java Web 应用程序超过最大空闲时间

java - Oracle 查询之间不采用结束日期时间

sql - Oracle 12c 数据默认值