【问题标题】:How to add Array of one entity while creating table in Oracle 11g Express Edition?Oracle 11g 快捷版创建表时如何添加一个实体的数组?
【发布时间】:2016-01-25 06:55:59
【问题描述】:

我正在尝试在我的数据库中使用对象publisher 创建一个表 定义为

create type publisher as object
(  pname varchar(20),
   branch varchar(20)
)

然后是book 对象

create type book as object(
title varchar(20),
pub_date date,
publisher publisher array[3],
keywordset varchar(20) multiset
)

最后是来自书本对象的表格

create table Books of book

但是,我在创建book 的对象时遇到错误,如下所示

第 4 行错误:PLS-00103:遇到符号“ARRAY”时 期待以下之一:

:= 。 ( ) , @% 非空范围默认外部字符

  1. title varchar(20),
  2. pub_date 日期,
  3. 发布者发布者数组[3],
  4. keywordset varchar(20) 多集
  5. )

请帮我解决。

【问题讨论】:

    标签: sql oracle11g


    【解决方案1】:

    你必须在使用它之前创建一个数组子类型。它应该在对象之外。我不知道你为什么在他们的网站上使用MULTISET

    您可以使用以下代码创建等效表。

     create type publisher as object
        (  pname varchar(20),
           branch varchar(20)
        )
    
        create type t_publisher as  varray(3) of publisher
    
        create type book as object(
        title varchar(20),
        pub_date date,
        publishr t_publisher,
        keywordset varchar(20)
        )
    
    
        create table Books of book
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-09-02
      • 2017-01-26
      • 1970-01-01
      • 2012-03-21
      • 2013-07-17
      • 2017-01-31
      • 2014-09-22
      • 1970-01-01
      相关资源
      最近更新 更多