Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вставка объекта в объект / 19 сообщений из 19, страница 1 из 1
28.10.2020, 13:17
    #40012596
pumpk1n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
Привет, не получается добавить запись.

Созданные объекты:

Код: 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.
52.
53.
54.
55.
CREATE OR REPLACE TYPE O_BAGAZAS_LIETAS AS OBJECT(
    NOSAUKUMS VARCHAR(50),
    SVARS FLOAT
);
 
CREATE OR REPLACE TYPE O_BAGAZS AS OBJECT(
    BAGAZAS_LIETAS REF O_BAGAZAS_LIETAS
);
 
CREATE OR REPLACE TYPE O_PASAZIERI AS OBJECT(
    UZVARDS VARCHAR(30),
    VARDS VARCHAR(20),
    BAGAZS REF O_BAGAZS
);
 
CREATE OR REPLACE TYPE O_STUARTES AS OBJECT(
    UZVARDS VARCHAR(30),
    VARDS VARCHAR(20)
);
 
CREATE OR REPLACE TYPE O_PILOTI AS OBJECT(
    UZVARDS VARCHAR(30),
    VARDS VARCHAR(20)
);
 
CREATE OR REPLACE TYPE O_BRIGADES AS OBJECT(
    NUMURS NUMBER,
    APZIMEJUMS VARCHAR(100),
    PILOTI REF O_PILOTI,
    STUARTI REF O_STUARTES
);
 
CREATE OR REPLACE TYPE O_LIDMASINA AS OBJECT(
    TIPS VARCHAR(50),
    NUMURS NUMBER,
    BRIGADES REF O_BRIGADES
);
 
CREATE OR REPLACE TYPE O_REISI AS OBJECT(
    NUMURS NUMBER,
    NOSAUKUMS VARCHAR(30),
    PASAZIERI REF O_PASAZIERI,
    LIDMASINAS REF O_LIDMASINA
);
 
CREATE OR REPLACE TYPE O_LIDOSTAS AS OBJECT(
    NUMURS NUMBER,
    NOSAUKUMS VARCHAR(30),
    TELEFONI NUMBER,
    REISI REF O_REISI
);
 
CREATE TABLE LIDOSTA_TBL(
    LIDOSTA O_LIDOSTAS NOT NULL
);



Код вставки:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
INSERT INTO LIDOSTA_TBL VALUES (LIDOSTA(55, 'TEST', 258925, 
REISI(258952, 'AFJKAF', 
PASAZIERI('TEST', 'TEST', 
BAGAZS(BAGAZAS_LIETAS('JDASK', 9155.25)), 
LIDMASINAS('BOING', 51205, 
BRIGADES(81295, '125ASJKFJ981JF8A8', 
PILOTI('TEST', 'TEST'), 
STUARTI('TEST', 'TEST')
)))));



Ругается на:
SQL Error: ORA-00917: отсутствует запятая
00917. 00000 - "missing comma"


Откуда там запятая взяться должна ума не приложу, тк указывает на скобки в конце.
...
Рейтинг: 0 / 0
28.10.2020, 13:34
    #40012605
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
Скобка у VALUES() не закрыта.
...
Рейтинг: 0 / 0
28.10.2020, 13:47
    #40012609
pumpk1n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
andrey_anonymous,

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
INSERT INTO LIDOSTA_TBL VALUES (LIDOSTA(55, 'TEST', 258925, 
REISI(258952, 'AFJKAF', 
PASAZIERI('TEST', 'TEST', 
BAGAZS(BAGAZAS_LIETAS('JDASK', 9155.25)), 
LIDMASINAS('BOING', 51205, 
BRIGADES(81295, '125ASJKFJ981JF8A8', 
PILOTI('TEST', 'TEST'), 
STUARTI('TEST', 'TEST')
))))));



Cкобку закрыл теперь такая ошибка:

SQL Error: ORA-00904: "LIDOSTA": недопустимый идентификатор
00904. 00000 - "%s: invalid identifier"
...
Рейтинг: 0 / 0
28.10.2020, 13:53
    #40012611
PuM256
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
pumpk1n,

И что такое LIDOSTA?
...
Рейтинг: 0 / 0
28.10.2020, 13:54
    #40012612
проходил мимо...
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
PuM256,

наверное O_LIDOSTAS )
...
Рейтинг: 0 / 0
28.10.2020, 13:55
    #40012613
pumpk1n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
PuM256, LIDOSTA - объект. Если перевод нужен то - аэропорт (с латышского языка).
...
Рейтинг: 0 / 0
28.10.2020, 14:00
    #40012615
pumpk1n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
Код: plsql
1.
2.
3.
INSERT INTO lidosta_tbl VALUES ( o_lidostas(55, 'TEST', 258925, o_reisi(258952, 'AFJKAF', o_pasazieri('TEST', 'TEST', o_bagazs(o_bagazas_lietas
('JDASK', 9155.25))), o_lidmasina('BOING', 51205, o_brigades(81295, '125ASJKFJ981JF8A8', o_piloti('TEST', 'TEST'), o_stuartes('TEST', 'TEST'
))))) );



Ну теперь вообще весело:

Error at Command Line : 1 Column : 128
Error report -
SQL Error: ORA-00932: несовместимые типы данных: ожидается REF USER.O_BAGAZAS_LIETAS, получено USER.O_BAGAZAS_LIETAS
00932. 00000 - "inconsistent datatypes: expected %s got %s"
...
Рейтинг: 0 / 0
28.10.2020, 14:04
    #40012618
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
pumpk1n
ожидается REF USER.O_BAGAZAS_LIETAS, получено USER.O_BAGAZAS_LIETAS
...
Рейтинг: 0 / 0
28.10.2020, 14:06
    #40012619
pumpk1n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
andrey_anonymous, я слабоват в этом, можешь объяснить конкретнее ошибку?
...
Рейтинг: 0 / 0
28.10.2020, 14:19
    #40012628
123йй
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
pumpk1n
я слабоват в этом

лаба ?
...
Рейтинг: 0 / 0
28.10.2020, 14:21
    #40012629
pumpk1n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
123йй, лабараторка, да. Но интерес весь в том что, мы на парах сидим только в ворд документ смотрим и нам на пальцах пытаются код объяснить как работает, вместо того чтобы посадить за компьютеры и нормально дать потыкать самим. Универ вообще весь в приколах.
...
Рейтинг: 0 / 0
28.10.2020, 15:07
    #40012659
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
pumpk1n
andrey_anonymous, я слабоват в этом, можешь объяснить конкретнее ошибку?

Оно ждет ССЫЛКУ на где-то существующий объект.
Не сам объект.
Аналогия - Вы можете положить в сейф свидетельство о собственности на квартиру, но саму квартиру в сейф положить затруднительно.
Как заказали - так и работает.
Код: plsql
1.
2.
3.
4.
5.
6.
CREATE OR REPLACE TYPE O_LIDOSTAS AS OBJECT(
    NUMURS NUMBER,
    NOSAUKUMS VARCHAR(30),
    TELEFONI NUMBER,
    REISI REF O_REISI
);
...
Рейтинг: 0 / 0
28.10.2020, 15:11
    #40012662
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
pumpk1n
лабараторка
, да. Но интерес весь в том что, мы на парах сидим только в ворд документ смотрим и нам на пальцах пытаются код объяснить как работает, вместо того чтобы посадить за компьютеры и нормально дать потыкать самим. Универ вообще весь в приколах.



лабараторка по REF или по OBJECT?

.....
stax
...
Рейтинг: 0 / 0
28.10.2020, 15:20
    #40012666
pumpk1n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
andrey_anonymous, а как тогда эту ссылку найти? или вызвать?
...
Рейтинг: 0 / 0
28.10.2020, 15:23
    #40012668
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
pumpk1n
andrey_anonymous, а как тогда эту ссылку найти? или вызвать?

Ну как-как... Создать объект, сохранить его и получить ссылку (адрес проживания объекта).
...
Рейтинг: 0 / 0
28.10.2020, 15:24
    #40012669
pumpk1n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
andrey_anonymous, видимо не до конца понимаю.

Я же создал объект O_REISI.
И вроде создал саму ссылку REISI.

Или я ошибаюсь?

Код: sql
1.
REISI REF O_REISI
...
Рейтинг: 0 / 0
28.10.2020, 15:36
    #40012675
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
pumpk1n
andrey_anonymous, видимо не до конца понимаю.

Я же создал объект O_REISI.

Не объект, но его описание - чертёж, если угодно.
Сам объект (экземпляр, то, что можно "потрогать") Вы пытаетесь создать по чертежу O_REINSI непосредственно в insert.
Вот на этот экземпляр и надо получить ссылку.
А для этого - предварительно где-то его сохранить (материализовать).
Потому как атрибут
Код: plsql
1.
REISI REF O_REISI


способен хранить только свидетельство о праве собственности, но не сам объект.
Т.е. в пределах одного insert Ваша структура сформирована быть не может.
...
Рейтинг: 0 / 0
28.10.2020, 15:45
    #40012685
pumpk1n
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
andrey_anonymous, можете это в коде отобразить (если это возможно)? я вообще пока не въезжаю -_-
...
Рейтинг: 0 / 0
28.10.2020, 15:58
    #40012697
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Вставка объекта в объект
pumpk1n,

22222332

ps
для двух "первых обектов"
Код: 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.
SQL> create table t_o1 of O_BAGAZAS_LIETAS;

Table created.

SQL> insert into t_o1 values('Львів',77);

1 row created.

SQL> create table t_o2(id int,o2 O_BAGAZS);

Table created.

SQL> insert into t_o2 select 1,O_BAGAZS(ref(t))from t_o1 t where NOSAUKUMS='Львів';

1 row created.

SQL> commit;

Commit complete.

SQL> select deref(t.O2.BAGAZAS_LIETAS) from t_o2 t where id=1;

DEREF(T.O2.BAGAZAS_LIETAS)(NOSAUKUMS, SVARS)
--------------------------------------------------------------------------------
O_BAGAZAS_LIETAS('Львів', 77)

SQL>



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


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