在对象视图中插入数据时重复的列名称

时间:2013-11-16 21:19:30

标签: mysql sql oracle views object-oriented-database

我已经从现有关系表创建了一个Object视图当我尝试使用视图将数据插入表中时出现错误。虽然我能够以关系的方式将数据插入Students TABLE

ORA-00957: duplicate column name

我的程序正在关注

CREATE TABLE Students
(
 StudID        NUMBER(6)
 CONSTRAINT Students_StudID_PK PRIMARY KEY,
 Sname         VARCHAR2(15),
 Street        VARCHAR2(20),
 CityName      VARCHAR2(20),
 StateName     VARCHAR2(20),
 PinCode       NUMBER(6)
)

这是我正在创建对象视图的关系表

CREATE TYPE MyAddress
AS OBJECT
(
Street        VARCHAR2(20),
CityName      VARCHAR2(20),
StateName     VARCHAR2(20),
PinCode       NUMBER(6)
)

另一个人

CREATE TYPE MyStudent
AS OBJECT
(
  Sname       VARCHAR2(15),
  Saddress    MYAddress
)

现在使用

成功创建了对象视图
CREATE OR REPLACE  VIEW StudentOv
(
   StudID,
   StudDEF
)
 AS
  SELECT StudID, MYStudent
      (
         StudID,
         MyAddress
                  (
                    Street,
                    CityName,
                    StateName,
                    PinCode
                  )
      )
FROM Students

当我尝试将数据插入视图时,我收到错误任何帮助都会得到赞赏。在此先感谢

INSERT INTO StudentOV
VALUES(1204,
    MYSTUDENT('RAMESH',
            MyAddress(
                     'SHYAMA NAGAR',
                      'SECUNDERABAD',
                       'ANDHRA PRADESH',
                        500601
                       )
                )
      )

1 个答案:

答案 0 :(得分:1)

在创建视图时,您选择了studIdtwice。

试试这个......创建视图。

CREATE OR REPLACE VIEW StudentOv
(
StudId,
StudDEF
)
AS
SELECT StudId, MYStudent
    (
    StudName,
    MyAddress
          (
          Street,
          CityName,
          StateName,
          PinCode
          )
     )
FROM Students;

然后,尝试将数据插入视图中。