Форум программистов, компьютерный форум, киберфорум
Наши страницы
Oracle
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.50/4: Рейтинг темы: голосов - 4, средняя оценка - 4.50
Kazin94
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 112
1

Почему выводится только одна строка?

16.03.2017, 16:23. Просмотров 799. Ответов 2
Метки нет (Все метки)

Добрый вечер. Имеется длинная функция

SQL
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
CREATE OR REPLACE FUNCTION get_week_list2(i_code IN INTEGER, i_year IN INTEGER) RETURN VARCHAR2 IS
  l_list  VARCHAR2(32767);
  l_list2  VARCHAR2(32767);
  l_res   VARCHAR2(4000);
  l_res2   VARCHAR2(4000);
BEGIN
SELECT listagg('CASE WHEN '||column_name||' IN(''о'') THEN '|| to_char( trunc (to_date(i_year||'0101', 'yyyymmdd') 
+ ((LTRIM(column_name,'N'))-1)*7, 'ww'), 'dd.mm')||'||''; '' ELSE NULL END ' ,'||') 
WITHIN GROUP(ORDER BY 1)
  INTO  l_list
  FROM  user_tab_columns
  WHERE TABLE_NAME = 'GRAFIK' 
  AND column_name LIKE 'N%';
  SELECT listagg('CASE WHEN '||column_name||' IN(''у'') THEN '|| to_char( trunc (to_date(i_year||'0101', 'yyyymmdd') 
+ ((LTRIM(column_name,'N'))-1)*7, 'ww'), 'dd.mm')||'||''; '' ELSE NULL END ' ,'||') 
WITHIN GROUP(ORDER BY 1)
  INTO  l_list2
  FROM  user_tab_columns
  WHERE TABLE_NAME = 'GRAFIK' 
  AND column_name LIKE 'N%';
EXECUTE IMMEDIATE 'SELECT '||l_list||' FROM GRAFIK WHERE kod_sotr=:A AND god=:year' INTO l_res USING i_code,i_year;
RETURN RTRIM(l_res);
 dbms_output.enable; 
 --dbms_output.put_line(l_res);
EXECUTE IMMEDIATE 'SELECT '||l_list2||' FROM GRAFIK WHERE kod_sotr=:A AND god=:year' INTO l_res2 USING i_code,i_year;
RETURN RTRIM(l_res2);
   dbms_output.put_line(l_res || l_res2);
END;
И её вывод

SQL
1
SELECT get_week_list2 (109909, 2017) FROM dual;
По сути, я там делаю два селекта, и пытаюсь вывести два разных результата (с одинаковыми названиями столбцов), но он выполняет только 1 запрос, и соответственно выводит 1 строку. Первую. Подскажите, как сделать так, чтобы выводилась 2 строка?

Это мне нужно для того, чтобы в одной строке выводились недели одного отпуска (учебного), а в другой - недели другого отпуска.
0
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.03.2017, 16:23
Ответы с готовыми решениями:

Почему выводится только одна строка матрицы
#include <stdafx.h> #include <iostream> #include <clocale> #include <ctime> #include <conio.h>...

Почему не выводится одна строка?
Странно, почему не выводится одна строка??? Ошибок нет при компилировании(если что)! Вот...

Выводится только одна строка
#include <stdio.h> main() { float fahr, celsius; float lower, upper, step; lower = 0;...

Чтение строк из файла: выводится только одна строка
Подскажите где ошибка? Имеется код: Dim inmes() As String =...

Почему выводится только одна запись из бд?
Вроде ж все нормально. Почему не выводит все. Не пойму :( while($myrow =...

2
AGK
759 / 660 / 195
Регистрация: 24.11.2015
Сообщений: 2,157
16.03.2017, 19:33 2
Лучший ответ Сообщение было отмечено Kazin94 как решение

Решение

Цитата Сообщение от Kazin94 Посмотреть сообщение
Подскажите, как сделать так, чтобы выводилась 2 строка?
Вообще-то в псевдотаблице dual содержится одна строка. Поэтому две строки можно вывести, например, так:
SQL
1
2
3
SELECT f(1) FROM dual
UNION ALL
SELECT f(2) FROM dual
Но судя по Вашим предыдущим темам, Вам нужно что-то другое.
0
Kazin94
0 / 0 / 0
Регистрация: 01.10.2012
Сообщений: 112
16.03.2017, 19:59  [ТС] 3
Цитата Сообщение от AGK Посмотреть сообщение
Но судя по Вашим предыдущим темам, Вам нужно что-то другое.
Приблизительно кстати это, спасибо.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.03.2017, 19:59

Выводится только одна окружность
Здравствуйте! Пожалуйста, помогите! Почему при коде: Program ty; Uses GraphABC; Var...

Выводится одна лишняя строка (работа с бинарным файлом)
Буду благодарен за помощь. #include<iostream> #include <fstream> #include <algorithm>...

Выводится только одна запись категории
Доброго времени суток! Столкнулся с проблемой, после того, как спустя несколько лет пересел...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru