Гость
Форумы / Oracle [игнор отключен] [закрыт для гостей] / функция без PIPELINED / 25 сообщений из 27, страница 1 из 2
26.07.2019, 18:07
    #39842039
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Пробовал написать функцию, которая возвращает таблицу, в 10g. Но замучился, нужно было какие-то мудрёные слова типа PIPELINED использовать. А в 12g написал сам, без обращения к документации, по наитию - и безо всяких PIPELINED. Это я мудрее стал или Oracle?
...
Рейтинг: 0 / 0
26.07.2019, 18:14
    #39842042
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Бритва Оккама говорит, что дураков меньше не становится.
...
Рейтинг: 0 / 0
29.07.2019, 11:45
    #39842476
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Victor CookinЭто я мудрее стал или Oracle?
Это означает, что ни тогда, ни сейчас Вы не читали документацию.
...
Рейтинг: 0 / 0
29.07.2019, 23:23
    #39842764
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
andrey_anonymous,

Тогда читал, но как-то не пошло. Наверно как-то решил задачу по-другому. А вопрос остался - можно ли было в 10g сделать функцию, которая возвращала dataset, но не частями, а целиком, без PIPELINED
...
Рейтинг: 0 / 0
30.07.2019, 02:10
    #39842794
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Victor Cookin вопрос остался - можно ли было в 10g сделать функцию, которая возвращала dataset, но не частями, а целиком, без PIPELINEDИменно только так и можно было делать в самом начале. Но чукча не читатель.
...
Рейтинг: 0 / 0
31.07.2019, 19:16
    #39843683
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Victor Cookin, а где пример из 12g?
...
Рейтинг: 0 / 0
31.07.2019, 20:50
    #39843709
Victor Cookin
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic,

Неужели интересно? Я так понял - это азы.

Код: sql
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.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
CREATE OR REPLACE type MDHE.T_EST as object 
(
  ESTABLISHMENT_ID          NUMBER,
  EST VARCHAR2 (100 BYTE),
  EST_BUSINESS_NAME VARCHAR2 (100 BYTE), 
  PHONE                   VARCHAR2 (20 BYTE),
  ADDRESS_ID                NUMBER,
  INSPECTOR_ID              INTEGER,
  ESTABLISHMENT_LICENSE_ID  NUMBER,
  LICENSE_TYPE_CODE       VARCHAR2 (30 BYTE)
)

CREATE OR REPLACE type MDHE.TB_EST as table of t_est;

CREATE OR REPLACE function MDHE.FN_LIC_MM (CODE IN varchar2, STATUS IN varchar2, CLOSED IN integer) return tb_est 
PARALLEL_ENABLE --RESULT_CACHE 
IS
Result tb_est;
CODE1 varchar2(2000);  
STATUS1 varchar2(2000);  
nCODE integer;
sCODE integer;
begin
nCode := 1; sCode := 1; CODE1:= CODE; STATUS1:= STATUS;  
if INSTR(CODE, '-') = 1 then nCode := 0; CODE1 := SUBSTR (CODE,2); end if; 
if INSTR(STATUS, '-') = 1 then sCode := 0; STATUS1 := SUBSTR (STATUS,2); end if;
SELECT t_est (es.Establishment_id,
                   es.name, es.est_business_name, es.phone,
                   es.address_id,
                   es.inspector_id,
                   aa.establishment_LICENSE_id, aa.LICENSE_TYPE_CODE) bulk collect into result
  from (
select e.Establishment_id, LICENSE_TYPE_CODE, max(establishment_license_id) establishment_license_id 
              FROM establishment  e
                   JOIN establishment_license el
                       ON e.establishment_id = el.establishment_id
             WHERE 
             (((e.est_closed IS NULL) and (CLOSED = 0)) or (NOT(e.est_closed IS NULL) and (CLOSED <> 0)))  
and (((nCode=1) and (INSTR (','||CODE1||',',','||LICENSE_TYPE_CODE||',') > 0))
or   ((nCode=0) and (INSTR (','||CODE1||',',','||LICENSE_TYPE_CODE||',') = 0)))
group by e.establishment_id, LICENSE_TYPE_CODE) aa
join establishment es 
on aa.establishment_id = es.establishment_id
JOIN establishment_license esl
on aa.establishment_license_id = esl.establishment_license_id
where  (((sCode=1) and (INSTR (','||STATUS1||',',','||esl.status_code||',') > 0))
  or    ((sCode=0) and (INSTR (','||STATUS1||',',','||esl.status_code||',') = 0)));
  return(Result);
end FN_LIC_MM;
/



F_LIC_MM ('03','EXPIRED',0) will return 'BODY PIERCER' active establishments with last license marked as 'EXPIRED';

F_LIC_MM ('03,21,23,30,76,80', '-EXPIRED',0) will return all tattoo-like active establishments with last license other then 'EXPIRED'

F_LIC_MM ('-','-',0) will return last license for ALL active establishments.
...
Рейтинг: 0 / 0
01.08.2019, 12:16
    #39843996
andrey_anonymous
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Victor CookinЯ так понял - это азы.
Собственно, так и есть.
https://docs.oracle.com/cd/B19306_01/appdev.102/b14289/dcitblfns.htm#ADDCI012
...
Рейтинг: 0 / 0
09.01.2020, 05:14
    #39911816
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Господа, а есть ли принципиальная разница, возвращать результат с pipelined или без таковой?
...
Рейтинг: 0 / 0
09.01.2020, 07:03
    #39911824
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic
принципиальная разница
Напиши оба варианта и сравни текст.
...
Рейтинг: 0 / 0
09.01.2020, 07:30
    #39911827
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic
а есть ли принципиальная разница, возвращать результат с pipelined или без таковой?
21935672
...
Рейтинг: 0 / 0
09.01.2020, 07:51
    #39911830
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Elic, а кроме флуда, по делу есть что сказать?
...
Рейтинг: 0 / 0
09.01.2020, 07:58
    #39911833
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic
Elic, а кроме флуда, по делу есть что сказать?
Если ты разумен, то флуд начал ты сам.
...
Рейтинг: 0 / 0
09.01.2020, 08:23
    #39911836
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
-2-
Synoptic
принципиальная разница
Напиши оба варианта и сравни текст.
Я не про текст. Ясно понятно что текст будет разным. Я с позиции быстродействия.
...
Рейтинг: 0 / 0
09.01.2020, 08:25
    #39911837
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic
Я с позиции быстродействия.
Т.е. ты совсем не понимаешь, что такое pipelined?
...
Рейтинг: 0 / 0
09.01.2020, 08:33
    #39911840
-2-
-2-
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic
Ясно понятно что текст будет разным.
В императивном языке различия команд отражают разную суть выполняемых действий.
Synoptic
Я с позиции быстродействия.
Купи секундомер.
...
Рейтинг: 0 / 0
09.01.2020, 08:41
    #39911843
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Elic
Synoptic
Я с позиции быстродействия.
Т.е. ты совсем не понимаешь, что такое pipelined?
Я использую pipelined не вдаваясь в подробности его работы. Отсюда и вопрос.
...
Рейтинг: 0 / 0
09.01.2020, 08:54
    #39911844
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic
Я использую pipelined не вдаваясь в подробности его работы. Отсюда и вопрос.
Быдлоподход.
RTFM Overview of Table Functions (FAQ)
...
Рейтинг: 0 / 0
09.01.2020, 09:10
    #39911850
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Elic
Быдлоподход.
RTFM Overview of Table Functions (FAQ)
Быдло не быдло, но оно работает ))
За ссылку спасибо, стало понятно.
...
Рейтинг: 0 / 0
09.01.2020, 09:13
    #39911851
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic
За ссылку спасибо, стало понятно.
Т.е. ты говнокодил не изучив язык?!
...
Рейтинг: 0 / 0
09.01.2020, 09:43
    #39911862
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Elic, тебе бы на курсы общения с людьми записаться, да дипломатию подтянуть ))
...
Рейтинг: 0 / 0
09.01.2020, 10:04
    #39911868
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic
Elic, тебе бы на курсы общения с людьми записаться, да дипломатию подтянуть ))
Разве тебе лично это поможет?
...
Рейтинг: 0 / 0
09.01.2020, 10:13
    #39911875
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Elic
Разве тебе лично это поможет?
У меня в этом нет необходимости, а вот для тебя польза будет колоссальной )
...
Рейтинг: 0 / 0
09.01.2020, 10:27
    #39911882
Elic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Synoptic
У меня в этом нет необходимости, а вот для тебя польза будет колоссальной
Ты бы лучше за профессионализм радел, болезный.
...
Рейтинг: 0 / 0
09.01.2020, 10:32
    #39911885
Synoptic
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
функция без PIPELINED
Не волнуйся, у меня всё отлично )
...
Рейтинг: 0 / 0
Форумы / Oracle [игнор отключен] [закрыт для гостей] / функция без PIPELINED / 25 сообщений из 27, страница 1 из 2
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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