powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Можно ли из функции вывести выходной параметр в запросе?
11 сообщений из 11, страница 1 из 1
Можно ли из функции вывести выходной параметр в запросе?
    #39301230
Altagracia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Проблема в следующем.
В ORACLE был создан пакет, в котором была реализована функция, у которой соответственно есть входные и выходные параметры(я имею ввиду не то, что получается после выполнения функции, а то, что расчитывается в ходе ее выполнения).
А мне нужно в запросе вывести один из выходных параметров этой функции. Причем без создания отдельной. Можно ли как-то сделать это напрямую?
...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301231
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AltagraciaА мне нужно в запросе вывести один из выходных параметров этой функции. Причем без создания отдельной. Можно ли как-то сделать это напрямую?
Если речь про SQL, то нет
...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301370
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tru55AltagraciaА мне нужно в запросе вывести один из выходных параметров этой функции. Причем без создания отдельной. Можно ли как-то сделать это напрямую?
Если речь про SQL, то нет

Клиент 11, потому пришлось через динамику:

Код: 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.
SQL*Plus: Release 11.2.0.1.0 Production on Wed Aug 31 17:28:05 2016

Copyright (c) 1982, 2010, Oracle. All rights reserved.

Connected to:
Oracle Database 12c Enterprise Edition Release 12.1.0.2.0 - 64bit Production
With the Partitioning, Real Application Clusters, Automatic Storage Management, OLAP,
Advanced Analytics and Real Application Testing options

SQL> var c refcursor;
SQL> create procedure testp(o_p out number) as
  2  begin o_p := dbms_random.value; end;
  3  ;

Procedure created.

SQL> sho err
No Errors.

SQL> begin open :c for
  2    'with function wrapper_f(x in number) return number
  3      is l_v number;
  4      begin testp(l_v); return l_v; end;
  5    select rownum r, wrapper_f(1) r2 from dual';
  6  end;
  7  /

PL/SQL procedure successfully completed.

SQL> print c;
         R         R2
---------- ----------
         1 .376033788

SQL>
...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301474
хитрый и поучительный финт ушами от андрея_анонимуса
но к постановке задачи имеет опосредованное отношение
...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301486
Фотография andrey_anonymous
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
человек-топорк постановке задачи имеет опосредованное отношение
??
Показано, как в 12с можно обернуть модуль с out-параметром (для простоты - процедурку) без создания дополнительной функции на уровне схемы для использования в select.
Что и требовалось ТС, не?
Ограничение 1 - нужна БД 12с.
Ограничение 2 - нужен клиент 12с или финты с динамикой.

Если кто-то знает как это сделать на версиях 11g и младше - с интересом посмотрю.

С другой стороны, если у ТС 11G но есть возможность выполнять перед запросом pl-код - то в некоторых случаях (преимущественно скалярных) можно попробовать хост-переменные или контекст.
...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301528
andrey_anonymousчеловек-топорк постановке задачи имеет опосредованное отношение
Что и требовалось ТС, не?

не
ему хотелось вытащить промежуточный итог вычисления функции, то есть то, что между in и out параметрами:
Altagracia "не то, что получается после выполнения функции, а то, что расчитывается в ходе ее выполнения"
хотя, пусть автор придёт и разжуёт, а то я привык понимать логику дебилов, а к здоровым людям это умение даже оскорбительно применять.
извините, если что.
...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301549
sqlminus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous Ограничение 2 - нужен клиент 12с или финты с динамикой. не преувеличивай.
...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301552
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AltagraciaА мне нужно в запросе вывести один из выходных параметров этой функции. Причем без создания отдельной. Можно ли как-то сделать это напрямую?

В каком-таком запросе? Если у функции eсть OUT парамeтр, то её нельзя нaпрямую использовать в запросе. А вообще для вызова функции/процедуры с OUT парамeтром, вызывающий должен обьявить переменную и передать её функции/процедуре. Так-что просто вызываем функцию/процедуру и затем выводим значение этой переменной.

SY.
...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301610
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrey_anonymousЕсли кто-то знает как это сделать на версиях 11g и младше - с интересом посмотрю.Нужно всего лишь правильно прятать запяточие.
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
Elic@elic12>; with function f(x in int) return int is begin return -x; end; select f(rownum) from dual;

    F(ROWNUM)
-------------
           -1

Elic@elic12>; with function f(x in int) return int is begin return -x; end
Elic@elic12>; ; select f(rownum) from dual;

    F(ROWNUM)
-------------
           -1

Elic@elic12>;  def _SQLPLUS_RELEASE
DEFINE _SQLPLUS_RELEASE = "1002000500" (CHAR)

...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301620
Altagracia
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
andrey_anonymous, параметр не out
...
Рейтинг: 0 / 0
Можно ли из функции вывести выходной параметр в запросе?
    #39301637
Фотография Elic
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Altagraciaandrey_anonymous, параметр не out http://www.bugtraq.ru/forum/faq/general/smart-questions.html] RTFM
...
Рейтинг: 0 / 0
11 сообщений из 11, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Можно ли из функции вывести выходной параметр в запросе?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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