Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вызов функции в select / 10 сообщений из 10, страница 1 из 1
28.05.2019, 10:49
    #39819127
antonkashin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
Всем привет, подскажите как вызвать пользовательскую функцию в блоке select?
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
create or replace function busdays(st in date, en in date) RETURN number is
busdays NUMBER := 0;
stDate DATE;
enDate DATE;
begin
stDate := TRUNC(st);
enDate := TRUNC(en);

if enDate >= stDate
then
busdays := enDate - stDate;

END IF;

   RETURN(busdays);
END;

select to_date('25.01.2019 10:10:00', 'DD.MM.YYYY HH24:MI:SS') as st_dt,
to_date('30.01.2019 18:30:52', 'DD.MM.YYYY HH24:MI:SS') as end_dt, busdays(st_dt, end_dt) from dual;



такой код че то не работает
...
Рейтинг: 0 / 0
28.05.2019, 10:55
    #39819132
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
че то

Оракл так и говорит "че-то неверно у тебя" ?
...
Рейтинг: 0 / 0
28.05.2019, 10:56
    #39819137
Anatoly B
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
antonkashin,

Код: plsql
1.
2.
3.
4.
select busdays(st_dt, end_dt)
from (
select to_date('25.01.2019 10:10:00', 'DD.MM.YYYY HH24:MI:SS') as st_dt, 
       to_date('30.01.2019 18:30:52', 'DD.MM.YYYY HH24:MI:SS') as end_dt from dual);
...
Рейтинг: 0 / 0
28.05.2019, 10:58
    #39819141
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
antonkashinкак вызвать пользовательскую функцию в блоке select?Сначала основы sql выучи, потом берись за функции.
...
Рейтинг: 0 / 0
28.05.2019, 11:21
    #39819157
antonkashin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
Anatoly B, спасибо, но выдает ошибку
Error(20,1): PLS-00103: Встретился символ "SELECT"
...
Рейтинг: 0 / 0
28.05.2019, 11:32
    #39819163
Щукина Анна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
antonkashin,

нельзя просто так взять и заселектить в никуда дынные в PL/SQL блоке...
...
Рейтинг: 0 / 0
28.05.2019, 11:32
    #39819165
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
antonkashin,

сначала создайте ф-цию

потом отдельно выполните селект

зы
если версия позволяет можно "протестировать" указав ф-цию в with

....
stax
...
Рейтинг: 0 / 0
28.05.2019, 11:34
    #39819169
dmdmdm
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
antonkashin, вот так надо задавать вопрос.

Код: 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.
Connected to Oracle Database 18c Enterprise Edition Release 18.0.0.0.0 
Connected as big3@//СэрВер:11521/XE

SQL> 
SQL> select st_dt, end_dt
  2    from (select to_date('25.01.2019 10:10:00', 'DD.MM.YYYY HH24:MI:SS') as st_dt,
  3                 to_date('30.01.2019 18:30:52', 'DD.MM.YYYY HH24:MI:SS') as end_dt
  4            from dual);

ST_DT       END_DT
----------- -----------
25.01.2019  30.01.2019

SQL> 
SQL> select fu(st_dt, end_dt)
  2    from (select to_date('25.01.2019 10:10:00', 'DD.MM.YYYY HH24:MI:SS') as st_dt,
  3                 to_date('30.01.2019 18:30:52', 'DD.MM.YYYY HH24:MI:SS') as end_dt
  4            from dual);
select fu(st_dt, end_dt)
  from (select to_date('25.01.2019 10:10:00', 'DD.MM.YYYY HH24:MI:SS') as st_dt,
               to_date('30.01.2019 18:30:52', 'DD.MM.YYYY HH24:MI:SS') as end_dt
          from dual)

ORA-00904: "FU": недопустимый идентификатор

SQL> 

...
Рейтинг: 0 / 0
28.05.2019, 11:49
    #39819182
Stax
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
Щукина Аннаantonkashin,

нельзя просто так взять и заселектить в никуда дынные в PL/SQL блоке...

у antonkashin не в блоке ("вызов функции в select ")

ps
в my_sql ,busdays(st_dt, end_dt) отработало бы

....
stax
...
Рейтинг: 0 / 0
28.05.2019, 14:12
    #39819302
merch
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
вызов функции в select
а нужна ли тут функция..
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / вызов функции в select / 10 сообщений из 10, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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