Я хочу вернуть тот же результат, который я получаю на sql-разработчике в построителе отчетов, всякий раз, когда я использую тот же запрос в построителе отчетов, он возвращает только одну строку или результат, используя PL/SQL. Пожалуйста помоги мне с этим.Как получить результат нескольких строк в Oracle Report Builder с использованием PL/SQL?
У меня есть таблица, как показано ниже: необходимо получить результат столбца «имя» в построителе отчетов по одному или распечатать.
select * from emp;
SL NAME CITY PHONE JOB
---- ----------- ----------- ----------- -------------
1 PRADEEP MANGALORE 66455466 MANAGER
2 PRASHANTH UDUPI 553453 PRESIDENT
3 NELSON MOODABIDRE 255343 A MANAGER
4 JACKSON KAUP 234534663 CLERK
5 JOHN MANGALORE 9947848 CLERK
6 DEXIE MANGALORE 122324324 CLERK
7 SUKESH KAUP 44266373 LINE MANAGER
8 YASER TAMILNADU 4423424 PRESIDENT
9 MITHUN KASARAGOD 3234242 CLERK
10 ABU AJMAN 54636673 SUPERVISOR
10 rows selected
Теперь у меня есть запрос pl/sql, чтобы вернуть только имя. Это без цикла.
SET SERVEROUTPUT ON
DECLARE
CURSOR C1 IS SELECT NAME FROM EMP WHERE JOB = 'CLERK';
JOBS VARCHAR2(2000);
RES VARCHAR2(2000);
BEGIN
OPEN C1;
FETCH C1 INTO JOBS;
CLOSE C1;
RES := JOBS;
DBMS_OUTPUT.PUT_LINE(RES);
END;
этот код возвращает:
anonymous block completed
JACKSON
Если я применяю это на застройщике отчета с помощью возврата (DOPL не будет работать на Oracle Report Builder так, используя ВОЗВРАТ) этот блок даст мне тот же результат, выше.
Постараюсь с петлей (Этот шаг очень важен для меня)
SET SERVEROUTPUT ON
DECLARE
CURSOR C1 IS SELECT NAME FROM EMP WHERE JOB = 'CLERK';
JOBS VARCHAR2(2000);
RES VARCHAR2(2000);
BEGIN
OPEN C1;
LOOP
FETCH C1 INTO JOBS;
EXIT WHEN c1%NOTFOUND;
res := jobs;
DBMS_OUTPUT.PUT_LINE(res);
END LOOP;
CLOSE C1;
END;
В SQL Developer это вернемся ниже:
anonymous block completed
JACKSON
JOHN
DEXIE
MITHUN
же я попробовал в Oracle Report Builder, используя возврат вместо DBMS_OUTPUT.PUT_LINE
, но она возвращается, как показано ниже:
anonymous block completed
JACKSON
второй блок в то время как выполняется на sql-разработчике, давая мне всю запись, где job = clerk, но в построителе отчетов это не дает мне правильный результат. В построителе отчетов он должен давать 4 строки, но возвращает только одну строку. Поэтому мне нужно знать, как получить эти 4 строки в построителе отчетов.
Пожалуйста, помогите мне решить эту проблему.
так вы говорите блок первой курсор возвращается неправильные данные? – Moudiz
Не первый курсор сатья также возвращает правильный. Там я не использовал цикл так, чтобы его возвращалась первая строка. Теперь меня беспокоит второй блок. –
Не первый курсор сатья также возвращает правильный. Там я не использовал цикл так, чтобы его возвращалась первая строка. Теперь я беспокоюсь о втором блоке, когда выполняется на sql-разработчике, давая мне всю запись, где job = clerk, но в построителе отчетов это не дает мне правильный результат. В построителе отчетов он должен давать 4 строки, но возвращает только одну строку. Поэтому мне нужно знать, как получить эти 4 строки в построителе отчетов. –