powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вернуть результат выполнения функции FastReport
8 сообщений из 8, страница 1 из 1
Вернуть результат выполнения функции FastReport
    #39830584
morhellene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Есть query вида
DECLARE
a1 varchar2(1024);
a2 varchar2(2024);
begin
a1:= function(:par);
dbms_output.put_line(a1);
end;


Вопрос как забрать результат выполнения dbms_output.put_line(a1) (возвращает результат успешно/неуспешно) в отчет для дальнейшего анализа? Точнее как просто передать какой-то результат выполнения функции в
Через select ...from dual функцию оформить не выйдет.
Спасибо
...
Рейтинг: 0 / 0
Вернуть результат выполнения функции FastReport
    #39830592
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
из моего проекта:

Код: sql
1.
   select FUNC_GET_DBMS_OUTPUT from dual;



Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
create or replace function FUNC_GET_DBMS_OUTPUT 
return clob is
   Result   clob;
   sLine    varchar2(255);
   iStatus  integer;
begin
   DBMS_LOB.CreateTemporary(Result,true);
   
   loop                  
      DBMS_OUTPUT.GET_LINE (sLine, iStatus); 
      exit when iStatus<>0;
      Result:=Result||sLine||chr(13)||chr(10);
   end loop;

   return(Result);
end FUNC_GET_DBMS_OUTPUT;
...
Рейтинг: 0 / 0
Вернуть результат выполнения функции FastReport
    #39830594
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.

morhelleneЧерез select ...from dual функцию оформить не выйдет.

не понял мысли
...
Рейтинг: 0 / 0
Вернуть результат выполнения функции FastReport
    #39830599
morhellene
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кроик Семён, select function(:par) from dual
дает
ORA-14552: невозможно выполнение DDL, фиксации или отката внутри запроса или DML операции
...
Рейтинг: 0 / 0
Вернуть результат выполнения функции FastReport
    #39830646
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это код функции. Её нужно создать . Она сохранится в базу и будет там существовать под именем FUNC_GET_DBMS_OUTPUT

Впоследствии её можно будет вызвать из SQL
...
Рейтинг: 0 / 0
Вернуть результат выполнения функции FastReport
    #39830651
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
P.S.
можно и без создания функции конечно, т.е. воспользоваться таким анонимным SQL блоком :
Код: pascal
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.
var
   Q     : TOracleQuery; // DOA
   sTxt  : string;
begin
   Q := TOracleQuery.Create(nil);
   try
      Q.Session := .....
      
      Q.DeclareVariable(':RES', otCLOB);

      Q.SQL.Add('declare');
      Q.SQL.Add('   sLine    varchar2(255);');
      Q.SQL.Add('   iStatus  integer;');
      Q.SQL.Add('begin');
      Q.SQL.Add('   DBMS_LOB.CreateTemporary(:RES, true);');
      Q.SQL.Add('');
      Q.SQL.Add('   loop');
      Q.SQL.Add('      DBMS_OUTPUT.GET_LINE (sLine, iStatus);');
      Q.SQL.Add('      exit when iStatus<>0;');
      Q.SQL.Add('      :RES := :RES||sLine||chr(13)||chr(10);');
      Q.SQL.Add('   end loop;');
      Q.SQL.Add('end;'   

      Q.Execute();
   
      sTxt := Q.GetVariable(':RES');
   finally
      FreeAndNil(Q);
   end;
   
   ShowMessage('DBMS_OUTPUT = '+#13#10+
               sTxt);
end;               



но с функцией все-таки элегантнее на мой взгляд
...
Рейтинг: 0 / 0
Вернуть результат выполнения функции FastReport
    #39830712
DimaBr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В каком месте тут фигурирует FastReport ?
...
Рейтинг: 0 / 0
Вернуть результат выполнения функции FastReport
    #39830752
Фотография Кроик Семён
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это следующий шаг. Не забегайте вперёд.
...
Рейтинг: 0 / 0
8 сообщений из 8, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Вернуть результат выполнения функции FastReport
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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