Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 Вывод записывающей функции в селект  [new]
Reflector
Member

Откуда:
Сообщений: 65
Добры день, хотелось бы узнать, можно ли представить функцию в селекте для к каждого id.
Функция формируется по след. параметрам.
:= rms_.act_number(v_creation_date => :v_creation_date,
                             v_number_within_day => :v_number_within_day);
Функция вернет значение типа А170715-153
Можно ли данное значение увидеть на выходе в выборке? Если да, то как? Заранее спасибо.
7 фев 17, 16:50    [20189932]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
Reflector,

select your_package.your_function('value') as column_name from dual
7 фев 17, 17:25    [20190107]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
Reflector
Member

Откуда:
Сообщений: 65
--Eugene--,

Спасибо большое. Не очень понятно, что понимается под "Value". Функция формируется 2 значениями, в селекте я их не знаю (примерно 700 строк отсортированных по определенным параметрам значений).
В идеале хочется не отображать поля, которые содержит функция, а вывести id-функция.
Пример
124142115||А130993-115
7 фев 17, 17:47    [20190183]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6749
Reflector,

create or replace function killme_func(i_var1 number, i_var2 varchar2) return varchar2
is
l_str varchar2(30);
begin
  select dbms_random.string('p',30) into l_str from dual where 1=1 or (dummy = i_var2||to_char(i_var1));
  return l_str;
end;
/

with t (id,str) as (select 1, 'some'    from dual union all
                    select 2, 'awesome' from dual)
select id, str, id||'||'||killme_func(id,str) s 
from t
/



Как же велико желание получить результат не прикладывая никаких усилий......
7 фев 17, 17:58    [20190220]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
--Eugene--
Member

Откуда: Боярышник
Сообщений: 2170
Reflector,

вы сначала определитесь, что именно хотите сделать.
"вывести" - это не есть функциональность СУБД.

вот более другой пример:
select concat(object_id, object_name) as column_name from all_objects order by object_id
7 фев 17, 18:12    [20190253]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
dbms_photoshop
Member

Откуда: sqlmdx.net
Сообщений: 5151
env,

Следующим шагом пациент скажет, что у него десятка и синтаксис "=>" работает в PL/SQL, а в SQL - нет. :))
7 фев 17, 18:20    [20190279]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
Reflector
Member

Откуда:
Сообщений: 65
env,
Спасибо за пример, но это не подойдет. Функция уже сформирована. Как я понимаю, она осуществляет генерацию номера.
Тот же самый номер хотелось увидеть в селекте на вывод. Так как в интерфейсе все предствалено ввиде номера, а в таблицах записывается только id.
8 фев 17, 08:34    [20191220]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
Reflector
Member

Откуда:
Сообщений: 65
--Eugene--,
Я давно определился :) Пример с dual подходил идеально. Просто не было понятно, что записать в "Value", так как дата создания и длительность дней, которые использует функция, разные.
Как я понимаю, нужно передать что-то вроде этого
select rms_.act_number(to_date('22.11.2016 17:17:54', 'DD.MM.YYYY HH24:mi:ss'),154435096) from dual

Только не понятно, как это сделать для 700 разных дат и id.
8 фев 17, 08:40    [20191235]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
Reflector
Member

Откуда:
Сообщений: 65
dbms_photoshop,
Не стоит утрировать. Я четко понимаю, что необходимо. Вот реализация хромает.
8 фев 17, 08:41    [20191238]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
Elic
Member

Откуда:
Сообщений: 29991
Reflector
Функция формируется 2 значениями, в селекте я их не знаю (примерно 700 строк
А кто знает? Невозможно получить нечто из ничего.
Reflector
Я четко понимаю, что необходимо.
RTFM
8 фев 17, 09:07    [20191330]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
Reflector
Member

Откуда:
Сообщений: 65
Elic,
Прочитайте выше. Я знаю значения, которыми будет сформирован один номер. Хочу тоже самое сделать для 700 других значений, в которых тоже есть и дата создания и длительность. Но вывод значений хаотичен(точнее он зависит от id). Как сделать так, чтобы на выходе для уникального id данная функция считывала параметры из таблицы и на выводе выдала номер, который необходим. Не генерировала бы № 1 к 1, а выдала номера для всех id, присутствующих в выгрузке.
8 фев 17, 09:44    [20191465]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
env
Member

Откуда: Россия, Москва
Сообщений: 6749
Reflector,

Сударь, вам уже дали ответ.
Возможность его понять ограничена исключительно шорами вашего разума.
8 фев 17, 09:49    [20191483]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
dmdmdm
Member

Откуда: Нижний Новгород
Сообщений: 1648
RTFM не прочитан.

Кто мешает сделать так и задать вопрос? Никто, кроме собственной лени. И выпытывать у вас, что же именно вам нужно, никакого интереса нет.
SQL> create function func(id number) return number as
  2  begin
  3    return power(10, id);
  4  end;
  5  /
Function created
SQL> with t as
  2       ( select 1 id from dual union all
  3         select 2 from dual union all
  4         select 3 from dual
  5       )
  6  select t.id, func(t.id) from t;
        ID FUNC(T.ID)
---------- ----------
         1         10
         2        100
         3       1000

SQL> 
8 фев 17, 09:51    [20191488]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
Elic
Member

Откуда:
Сообщений: 29991
Reflector
Прочитайте выше.
Учись задавать вопросы. Твой поток сознания не помогает нам помочь тебе.
Reflector
функция считывала параметры из таблицы
Ты не умеешь в запросе вызывать функции?
8 фев 17, 09:51    [20191490]     Ответить | Цитировать Сообщить модератору
 Re: Вывод записывающей функции в селект  [new]
Reflector
Member

Откуда:
Сообщений: 65
Коллеги, извините за сумбурность:) Я истинный деградант
select rms_.act_number(v_creation_date => a.creation_date, v_number_within_day => a.number_within_day)

Это все, что требовалось. Как-то слишком я завернул вопрос у себя в голове.
8 фев 17, 10:16    [20191586]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить