2013-11-16 3 views
0

Я создал представление объекта из существующей реляционной таблицы Когда я пытаюсь вставить данные в таблицу, используя представление Я получаю сообщение об ошибке. Хотя я могу вставить данные в Студенческом 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) 
) 

Это моя реляционная таблица, на которой я Создание объекта View

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 
) 

Теперь Object View успешно создан с помощью

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

И когда я пытаюсь вставить данные в представление я получил ошибку Любая помощь будет оценена. Спасибо In Advance

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

ответ

1

При создании вида вы выбрали studIdtwice.

Попробуйте это ... Чтобы создать представление.

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

Затем попробуйте вставить данные в представление.

Смежные вопросы