powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-00904: : invalid identifier при попытке добавить nested table
6 сообщений из 6, страница 1 из 1
ORA-00904: : invalid identifier при попытке добавить nested table
    #39720420
JohnVein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день. Подскажите пожалуйста
есть таблица
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
create table contracts(
	contract_code integer not null,
	conclusion_date date not null,
	contract_term integer not null check(contract_term <= 5),
	position_code integer not null,
	faculty_code integer not null,
	rate integer not null check(rate <= 5),
	employee_code integer not null,
	constraint contracts_positions foreign key(position_code) references positions,
	constraint contracts_chairs foreign key(faculty_code) references chairs,
	constraint contracts_employees foreign key(employee_code) references employees,
	primary key(contract_code)
);



Скопировав названия полей и их типы создаю объект:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
create or replace type contracts_object as object(
	contract_code integer,
	conclusion_date date,
	contract_term integer,
	position_code integer,
	faculty_code integer,
	rate integer,
	employee_code integer);


Далее на основе объекта создаю коллекцию:
Код: plsql
1.
create or replace type contracts_collection as table of contracts_object;


Далее создаю таблицу из другой таблицы
Код: plsql
1.
create table new_tablex as (select * from chairs);


И в конце пытаюсь изменить new_tablex следующей строкой:
Код: plsql
1.
ALTER TABLE new_tablex ADD chcontracts_collection contracts_collection  NESTED TABLE contracts STORE AS contracts_tab;


В результате возникает ошибка:
ORA-00904: : invalid identifier
В чем может быть причина ошибки?
...
Рейтинг: 0 / 0
ORA-00904: : invalid identifier при попытке добавить nested table
    #39720459
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnVeinВ чем может быть причина ошибки?

В том что не RTFM. Медитируй над:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> ALTER TABLE new_tablex ADD chcontracts_collection contracts_collection
  2  NESTED TABLE contracts STORE AS contracts_tab
  3  /
NESTED TABLE contracts STORE AS contracts_tab
             *
ERROR at line 2:
ORA-00904: : invalid identifier


SQL> ALTER TABLE new_tablex ADD chcontracts_collection contracts_collection
  2  NESTED TABLE chcontracts_collection STORE AS contracts_tab
  3  /

Table altered.

SQL> 



SY.
...
Рейтинг: 0 / 0
ORA-00904: : invalid identifier при попытке добавить nested table
    #39720463
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
JohnVeinВ чем может быть причина ошибки?

Ты вообще задумывался над тем что ты пытаешься сделать? У нас это называется "squeeze 10 pounds of shit into 5 pound bag". Ты добавляешь поле в таблицу. Теперь у каждой строки свое значение этого поля. И не имеет значение поле скаляр, или nested table. А ты пытаешься значения nested tables всех строк засунуть в одну таблицу. И как ты будещь выдергивать "пoд-таблицы" значений для отдельных строк new_tablex? Т.e. это как минимум должна быть таблица таблиц. Но зачем все это? Какую бизнес задачу ты решаешь?

SY.
...
Рейтинг: 0 / 0
ORA-00904: : invalid identifier при попытке добавить nested table
    #39720464
JohnVein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SYJohnVeinВ чем может быть причина ошибки?

В том что не RTFM. Медитируй над:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
SQL> ALTER TABLE new_tablex ADD chcontracts_collection contracts_collection
  2  NESTED TABLE contracts STORE AS contracts_tab
  3  /
NESTED TABLE contracts STORE AS contracts_tab
             *
ERROR at line 2:
ORA-00904: : invalid identifier


SQL> ALTER TABLE new_tablex ADD chcontracts_collection contracts_collection
  2  NESTED TABLE chcontracts_collection STORE AS contracts_tab
  3  /

Table altered.

SQL> 



SY.
ясно. спасибо
...
Рейтинг: 0 / 0
ORA-00904: : invalid identifier при попытке добавить nested table
    #39720470
JohnVein
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SY,

Это лаба просто. Там такое задание
...
Рейтинг: 0 / 0
ORA-00904: : invalid identifier при попытке добавить nested table
    #39720618
SkilledJunior
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
JohnVein,

Зачем темы плодишь? Сразу бы написал задание и что сделал, на чем затык, пинок в правильном направлении получишь, решать за тебя никто не станет, разве что в форуме работа за соответствующее вознаграждение.
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / ORA-00904: : invalid identifier при попытке добавить nested table
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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