Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Oracle [игнор отключен] [закрыт для гостей] / Можно ли из функции вывести выходной параметр в запросе? / 11 сообщений из 11, страница 1 из 1
31.08.2016, 15:40:14
    #39301230
Altagracia
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли из функции вывести выходной параметр в запросе?
Проблема в следующем.
В ORACLE был создан пакет, в котором была реализована функция, у которой соответственно есть входные и выходные параметры(я имею ввиду не то, что получается после выполнения функции, а то, что расчитывается в ходе ее выполнения).
А мне нужно в запросе вывести один из выходных параметров этой функции. Причем без создания отдельной. Можно ли как-то сделать это напрямую?
...
Рейтинг: 0 / 0
31.08.2016, 15:41:23
    #39301231
tru55
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли из функции вывести выходной параметр в запросе?
AltagraciaА мне нужно в запросе вывести один из выходных параметров этой функции. Причем без создания отдельной. Можно ли как-то сделать это напрямую?
Если речь про SQL, то нет
...
Рейтинг: 0 / 0
31.08.2016, 17:46:53
    #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
31.08.2016, 20:06:55
    #39301474
Можно ли из функции вывести выходной параметр в запросе?
хитрый и поучительный финт ушами от андрея_анонимуса
но к постановке задачи имеет опосредованное отношение
...
Рейтинг: 0 / 0
31.08.2016, 20:29:38
    #39301486
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Можно ли из функции вывести выходной параметр в запросе?
человек-топорк постановке задачи имеет опосредованное отношение
??
Показано, как в 12с можно обернуть модуль с out-параметром (для простоты - процедурку) без создания дополнительной функции на уровне схемы для использования в select.
Что и требовалось ТС, не?
Ограничение 1 - нужна БД 12с.
Ограничение 2 - нужен клиент 12с или финты с динамикой.

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

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

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

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

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


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