Дублируйте имя столбца При вставке данных в представлениях объекта

StackOverflow https://stackoverflow.com//questions/20024039

Вопрос

Я создал вид объекта из существующей реляционной таблицы, когда я пытаюсь вставить данные в таблицу, используя просмотр, я получаю ошибку.Хотя я могу вставить данные в таблицу студентов в реляционном порядке

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
                       )
                )
      )
.

Это было полезно?

Решение

При создании просмотра вы выбрали StudiDTwice.

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

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top