powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Объектные таблицы
2 сообщений из 2, страница 1 из 1
Объектные таблицы
    #39518702
Yoab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день,

В ходе познания объектных возможностей Оракло возникло недоумение:

Допустим я создать тип

create or replace type t_People as object
(
nPassport number,
sFIO varchar2(50)
) not final

Наследую от него другой тип

create or replace type t_student under t_People
(
nStudID number
) final

Создаю от типа t_student объектную таблицу

create table students of t_student
(constraint pk1 primary key (nStudID)) OBJECT IDENTIFIER IS PRIMARY KEY


В результате получаю таблицу с тремя атрибутами: nPassport,sFIO,nStudID

Удаляю атрибут sFIO из супер типа

alter type t_people drop attribute (sFIO) cascade;

Удаление из супер типа проходит успешно, но... смотрю таблицу - по прежнему 3 атрибута:nPassport,sFIO,nStudID.

Пытаюсь удалить вручную из таблицы (alter table ... drop column..) - Ошибка ora-12981! Невозможно удаление столбца из таблицы объектного типа.


Тоже самое и с добавлением атрибутов в супер тип - в объектные таблицы потомков они не добавляются

Вопрос.. как с этим жить то? Наверняка должна быть возможность управлять атрибутами объектных таблиц, которые пришли через супер типы ну или хотя бы как удалить столбец в таком случае?)))
...
Рейтинг: 0 / 0
Объектные таблицы
    #39518705
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Версия? Не воспроизводится:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
SQL> select banner from v$version;

BANNER
--------------------------------------------------------------------------------
Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production
PL/SQL Release 12.2.0.1.0 - Production
CORE    12.2.0.1.0      Production
TNS for 64-bit Windows: Version 12.2.0.1.0 - Production
NLSRTL Version 12.2.0.1.0 - Production

SQL> create or replace type t_People as object
  2  (
  3  nPassport number,
  4  sFIO varchar2(50)
  5  ) not final
  6  /

Type created.

SQL> create or replace type t_student under t_People 
  2  (
  3  nStudID number
  4  ) final
  5  /

Type created.

SQL> create table students of t_student 
  2  (constraint pk1 primary key (nStudID)) OBJECT IDENTIFIER IS PRIMARY KEY
  3  /

Table created.

SQL> desc students
 Name                                                                     Null?    Type
 ------------------------------------------------------------------------ -------- -------------------------------------------------
 NPASSPORT                                                                         NUMBER
 SFIO                                                                              VARCHAR2(50)
 NSTUDID                                                                  NOT NULL NUMBER

SQL> alter type t_people drop attribute (sFIO) cascade;

Type altered.

SQL> desc students
 Name                                                                     Null?    Type
 ------------------------------------------------------------------------ -------- -------------------------------------------------
 NPASSPORT                                                                         NUMBER
 NSTUDID                                                                  NOT NULL NUMBER

SQL>                    



SY.
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Объектные таблицы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]