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

Posted

技术标签:

【中文标题】在对象视图中插入数据时列名重复【英文标题】:Duplicate Column name When Inserting Data In Object Views 【发布时间】:2013-11-16 21:19:29 【问题描述】:

我从现有关系表创建了一个对象视图,当我尝试使用视图将数据插入表中时出现错误。虽然我能够以关系方式将数据插入到学生表中

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】:

在创建视图时,您两次选择了 studId。

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

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

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

【讨论】:

以上是关于在对象视图中插入数据时列名重复的主要内容,如果未能解决你的问题,请参考以下文章

将对象插入核心数据实体时处理重复项

在 HTML 中插入对象数据 [重复]

oracle——数据表的相关操作——插入数据以及批量插入数据

视图与索引

SQLServer视图用insert into插入,报错!!

在 SQL Server 视图中插入重复行