Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/firebase/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Oracle sqlplus-定义类型化表,没有属性,只有嵌套表_Sql_Oracle_Sqlplus_Object Relational Model - Fatal编程技术网

Oracle sqlplus-定义类型化表,没有属性,只有嵌套表

Oracle sqlplus-定义类型化表,没有属性,只有嵌套表,sql,oracle,sqlplus,object-relational-model,Sql,Oracle,Sqlplus,Object Relational Model,我的作业有问题。我有以下类型定义: -- Type definitions CREATE OR REPLACE TYPE languages_table_t AS TABLE of VARCHAR2(20); / CREATE OR REPLACE TYPE phones_table_t AS TABLE of NUMBER; / CREATE OR REPLACE TYPE tourist_t AS OBJECT ( -- ... -- some simple attrubutes

我的作业有问题。我有以下类型定义:

-- Type definitions
CREATE OR REPLACE TYPE languages_table_t AS TABLE of VARCHAR2(20);
/

CREATE OR REPLACE TYPE phones_table_t AS TABLE of NUMBER;
/

CREATE OR REPLACE TYPE tourist_t AS OBJECT (
  -- ...
  -- some simple attrubutes
  -- one attribute of user defined type
  -- more simple attrubutes
  -- ...
) NOT FINAL;
/

CREATE OR REPLACE TYPE guide_t UNDER tourist_t (
  languages   languages_table_t,
  phones      phones_table_t
);
/
-- All types are created successfully


-- table definitions:

CREATE TABLE Tourist OF tourist_t (
  -- all simple attributes with nullity constraints
  CONSTRAINT PK_TOURIST PRIMARY KEY (username),
) NESTED TABLE the_UDT_attr STORE AS the_user_defined_type;
-- Created successfully

CREATE TABLE Guide OF guide_t (
  CONSTRAINT PK_GUIDE PRIMARY KEY (username)
) NESTED TABLE languages STORE AS guide_languages
  NESTED TABLE phones STORE AS guide_phones;
-- returns mystic error
运行上一条create指令时,出现以下错误:

CREATE TABLE Guide OF guide_t (
*
ERROR at line 1:
ORA-22913: must specify table name for nested table column or attribute
我已经搜索了这个错误,但它似乎对我的定义太具体了,我找不到如何解决它。请,任何帮助都将不胜感激。我需要一个关于如何攻击此类错误、如何解决这些错误或在何处阅读这些错误的想法

sqlplus的版本为:

SQL> SELECT * FROM V$VERSION;

BANNER
----------------------------------------------------------------
Oracle Database 10g Enterprise Edition Release 10.2.0.4.0 - 64bi
PL/SQL Release 10.2.0.4.0 - Production
CORE    10.2.0.4.0  Production
TNS for Solaris: Version 10.2.0.4.0 - Production
NLSRTL Version 10.2.0.4.0 - Production
如果您需要任何其他信息来帮助我,请询问,我会更新问题


谢谢

还需要为超类型的属性定义嵌套表存储。当我将udt_tables.sql脚本添加到第155行时,它会工作:

CREATE TABLE Guia OF guia_t (
  CONSTRAINT PK_GUIA PRIMARY KEY (username)
) NESTED TABLE idiomas STORE AS guia_idiomas
  NESTED TABLE telefonos STORE AS guia_telefonos
  NESTED TABLE tipoHitosPreferidos STORE as something;

在我向
tourism\u t
添加了一个真实的列之后,您的示例对我很有用。您确定所有类型都已成功创建吗?某些IDE,如PL/SQL Developer,将执行
create type
语句,但不会警告您异常情况。@jonearles:是的,我确信它们已成功创建。我不是在使用IDE,而是在sqlplus CLI中加载带有符号
@script.sql
的脚本。到目前为止,我认为这可能是旧运行的一些残余,也许我没有在一个干净的环境中工作,但我不熟悉oracle管理。有没有办法清理会话并在干净的环境中重新启动?因为脚本没有架构名称,所以您应该能够在任何数据库上以任何用户的身份运行它们。要重新开始,可以运行如下脚本:
droptableguide;跌落式导轨;落地式旅游车;下拉式电话\u表\u t;下拉式语言\u表\u t。使用您的代码,
tourism\u t
应该会失败,因为
PLS-00589:在对象类型“tourism\u t”中找不到属性。
@jonearles:另外,在我的脚本中,
tourism\u t
有许多列。没有的是表
指南
,它只有嵌套的表属性。你可以看到真正的脚本(西班牙语)谢谢!我的实验室合作伙伴刚刚弄明白了,我正在寻找问题来更新它。谢谢你花时间来帮助我们!