Форум программистов, компьютерный форум, киберфорум
Oracle
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
6 / 5 / 4
Регистрация: 07.11.2014
Сообщений: 58
1

Вывод varray в консоль

21.05.2017, 21:57. Показов 1687. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Итак, есть объект "прививки", который хранит в себе имя и дату:
Oracle 11 SQL
1
2
3
4
5
CREATE OR REPLACE 
TYPE a_graft AS object(
  g_name VARCHAR2(20),
  g_date DATE
);
Есть varray этих объектов:
Oracle 11 SQL
1
2
CREATE OR REPLACE 
TYPE a_graftlist IS varray(100) OF a_graft
Я создаю таблицу и заполняю ее данными.
Oracle 11 SQL
1
2
3
4
5
CREATE TABLE a_grafts(
  id NUMBER(4),
  last_name VARCHAR2(20),
  grafts a_graftlist
  );
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
CREATE OR REPLACE 
PROCEDURE     A_LAB6_1 AS
BEGIN
  INSERT INTO a_grafts
  VALUES(0001, 'Name1', a_graftlist(
    a_graft('Грипп', '25/04/17'),
    a_graft('Гепатит В', '26/05/17'))
  );
  INSERT INTO a_grafts
  VALUES(0002, 'Name2', a_graftlist(
    a_graft('Грипп', '28/05/17'),
    a_graft('Гепатит В', '29/05/17'),
    a_graft('Ветряная оспа', '30/05/17'))
  );
  INSERT INTO a_grafts
  VALUES(0003, 'Name3', a_graftlist(
    a_graft('Грипп', '25/04/17'))
  );
END A_LAB6_1;
Нужно вывести в консоль ид, фамилию и все данные с varray. Как это реализовать?
Oracle 11 SQL
1
2
3
4
5
6
7
8
9
10
CREATE OR REPLACE 
PROCEDURE     A_LAB6_2 AS
  TYPE a_graftlist IS varray (100) OF DATE;
  a_graft a_graftlist := a_graftlist();
BEGIN
  FOR g IN (SELECT * FROM a_grafts) LOOP
    dbms_output.put_line(g.id || ' / ' || g.last_name/* || ' / ' || g.a_graftlist(10)*/);
  END LOOP;
  
END A_LAB6_2;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2017, 21:57
Ответы с готовыми решениями:

Реализовать вывод массива объектов типа Student на консоль (файловый ввод/вывод)
Как сделать чтобы список студентов выводился на экран в конце? #include<iostream> ...

Вывод в консоль
Код без ошибок (VS не ругается при компиляции)! Но консоль не хочет выводить сообщений.. В чем...

Вывод на консоль
Сорри за тупость:sorry:, но почему у меня в программе namespace ConsoleApplication1 { class...

Вывод в консоль
Доброго времени суток. Проблема с выводом в консоль кириллицы: setlocale(LC_ALL, "Rus"); ......

1
476 / 239 / 114
Регистрация: 12.05.2016
Сообщений: 647
22.05.2017, 00:53 2
Лучший ответ Сообщение было отмечено fR3W как решение

Решение

Ну если не принимать во внимание, что вы используете РЕЛЯЦИОННУЮ БД и при этом пытаетесь запихнуть все данные в одну таблицу, накладывая при этом на свое решение совершенно ненужные ограничения (например у вас не может быть больше 100 прививок у одного пациента), то надо просто добавить вложенный цикл по вашему массиву прививок:

SQL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
CREATE OR REPLACE 
PROCEDURE     A_LAB6_2 AS
  TYPE a_graftlist IS varray (100) OF DATE;
  a_graft a_graftlist := a_graftlist();
BEGIN
  FOR g IN (SELECT * FROM a_grafts) LOOP
    dbms_output.put_line(g.id || ' / ' || g.last_name/* || ' / ' || g.a_graftlist(10)*/);
 
    FOR m IN g.grafts.first..g.grafts.last LOOP
      dbms_output.put_line('   '||g.grafts(m).g_name||','||g.grafts(m).g_date); 
    END LOOP;
 
  END LOOP;
  
END A_LAB6_2;
1
22.05.2017, 00:53
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2017, 00:53
Помогаю со студенческими работами здесь

Вывод в консоль
Здравствуйте, задаю фиксированный размер консоли с помощью system("mode con cols=80 lines=40");...

Вывод на консоль С#
Даны 2 текстовые файла, строки которых отсортированы лексикографически. Вывести на консоль строки...

Вывод в консоль
Помагите вывести вывод не получается :( Не выводит радиус и координату центра using System; ...

Вывод на консоль
Объясните пожалуйста, пишу программу на консоли. Консоль получает параметры из xml файла. На...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru