powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Вывод данных из коллекции
12 сообщений из 12, страница 1 из 1
Вывод данных из коллекции
    #39513435
ioserg2018
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день
Ситуация такая:
есть таблица, где поле имеет пользвательский тип:
Код: plsql
1.
2.
select SCHEDULED_OPERATIONS
from OPERATION_SCHEDULE


в интернете нашёл обертку для этого типа поля:
Код: plsql
1.
select * from tables (SCHEDULED_OPERATIONS.items)


Но почему-то не работает эта обертка.

В чем может быть проблема? И как вывести все данные для этого типа поля?

Мне нужно эти данные связать потом с таблицей по ID, который хранится в этом поле
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39513448
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39513461
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ioserg2018Добрый день
Ситуация такая:
есть таблица, где поле имеет пользвательский тип:

под "пользвательский тип" может скрыватся что угодно

покажите структуру таблицы
desc OPERATION_SCHEDULE

зы
для красоты можно задать
set describe depth all linenum on indent on
....
stax
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39513463
ioserg2018
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Stax,

структура таблицы:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
STATUS CHAR, 
OPERATION_SCHEDULE_ID NUMBER, 
OPERATION_ID NUMBER, 
SCHEDULE_TYPE VARCHAR2 (4), 
SCHEDULE_TYPE_VALUE NVARCHAR2 (384), 
STARTDATE DATE, 
ENDDATE DATE, 
SCHEDULED_OPERATIONS TSCHEDULEDOPERATION#VARRAY, 
PARAMETERS VARCHAR2 (4000), 
CREATED DATE, 
UPDATED DATE


Тип TSCHEDULEDOPERATION#VARRAY:
Код: plsql
1.
CREATE OR REPLACE Type TScheduledOperation#VArray is VArray(256) Of TScheduledOperation


Тип TScheduledOperation:
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE OR REPLACE Type TScheduledOperation AS Object (
  TaskId             Number,
  ScheduleDate       Date,
  CreatingDate       Date,
  CompletionDate     Date,
  Amount             Number(10,2),
  ExtParam           Varchar2(32),
  CreatedOperationId        Number,
  CreatedOperationStatusId  Number
)


Как-то так
Как теперь можно вывести колонки типа TScheduledOperation и сделать с ними join из другой таблицы?
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39513475
Фотография Stax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ioserg2018,

упростил структуры (лень набивать тест)

Код: 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.
SQL> desc OPERATION_SCHEDULE
           Name                            Null?    Type
           ------------------------------- -------- ----------------------------
    1      ID                                       NUMBER(38)
    2      SCHEDULED_OPERATIONS                     T#VARRAY
    3    2   TASKID                                 NUMBER
    4    2   AMOUNT                                 NUMBER(10,2)
    5    2   EXTPARAM                               VARCHAR2(32)

SQL> select * from OPERATION_SCHEDULE;

        ID
----------
SCHEDULED_OPERATIONS(TASKID, AMOUNT, EXTPARAM)
--------------------------------------------------------------------------------
         1
T#VARRAY(TSCHEDULE(1, 100,01, '111'), TSCHEDULE(2, 100,02, '222'))

         2
T#VARRAY(TSCHEDULE(3, 200,21, 'xxx'), TSCHEDULE(4, 200,22, 'yyy'))


SQL> with t as (
  2  select 1 id_ref,'Stax' n from dual union all
  3  select 2 id_ref,'Tahiti' n from dual union all
  4  select 3 id_ref,'OraDoc' n from dual union all
  5  select 4 id_ref,'ioserg2018' n from dual
  6  )
  7  select
  8   t.n
  9  ,o.ID
 10  ,a.TASKID
 11  ,a.AMOUNT
 12  ,a.EXTPARAM
 13  from OPERATION_SCHEDULE o,table(o.SCHEDULED_OPERATIONS) a,t
 14  where t.id_ref=a.taskid
 15  /

N                  ID     TASKID     AMOUNT EXTPARAM
---------- ---------- ---------- ---------- --------------------------------
Stax                1          1     100,01 111
Tahiti              1          2     100,02 222
OraDoc              2          3     200,21 xxx
ioserg2018          2          4     200,22 yyy

SQL>




.....
stax
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39513811
Озо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Магистр под новым ником писать начал?
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39514228
biktimirov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ioserg2018Добрый день
Ситуация такая:
есть таблица, где поле имеет пользвательский тип:
Код: plsql
1.
2.
select SCHEDULED_OPERATIONS
from OPERATION_SCHEDULE


в интернете нашёл обертку для этого типа поля:
Код: plsql
1.
select * from tables (SCHEDULED_OPERATIONS.items)


Но почему-то не работает эта обертка.

В чем может быть проблема? И как вывести все данные для этого типа поля?

Мне нужно эти данные связать потом с таблицей по ID, который хранится в этом поле
Так что ли к примеру тебе надо?
Код: plsql
1.
2.
3.
4.
select *
       from table (select os.scheduled_operations 
                          from OPERATION_SCHEDULE os
                          where os.operation_schedule_id = 442) t
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39520245
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
biktimirovioserg2018Добрый день
Ситуация такая:
есть таблица, где поле имеет пользвательский тип:
Код: plsql
1.
2.
select SCHEDULED_OPERATIONS
from OPERATION_SCHEDULE


в интернете нашёл обертку для этого типа поля:
Код: plsql
1.
select * from tables (SCHEDULED_OPERATIONS.items)


Но почему-то не работает эта обертка.

В чем может быть проблема? И как вывести все данные для этого типа поля?

Мне нужно эти данные связать потом с таблицей по ID, который хранится в этом поле
Так что ли к примеру тебе надо?
Код: plsql
1.
2.
3.
4.
select *
       from table (select os.scheduled_operations 
                          from OPERATION_SCHEDULE os
                          where os.operation_schedule_id = 442) t



А какая разница между приведённой записью и данной:
Код: plsql
1.
2.
3.
4.
select value(c)
    from table(select p.preferences$.Items
                    from profile p
                    where p.profile_id=440) c
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39520249
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015,

Документацию, как обычно читать не пробовал?

VALUE
VALUE takes as its argument a correlation variable (table alias) associated with a row of an object table and returns object instances stored in the object table
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39520284
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

Не жди что я скажу тебе спасибо, ты по прежнему в игноре
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39520359
Фотография env
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
RMagistr2015,

Ты серьёзно считаешь, что благодарность паразита кому-то важна?
Доку лучше читать учись и головой думать. Пользы больше будет, чем от создания одних и тех же тем под разными никами.
...
Рейтинг: 0 / 0
Вывод данных из коллекции
    #39520404
RMagistr2015
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
env,

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


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