Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Базы Данных sql вывод результата функции через представление

Claire Raif Ученик (130), на голосовании 4 года назад
Есть функция. Её результа - это строка. Как вывести результат функции через представление ( view)?
Дополнен 4 года назад
Текст функции:
create or replace function zadanie4 (ciphr number)
return varchar is
ciphrrr postavki.postavki_ciph%type;
tovaar tovar.tovar_name%type;
catt categoria.categoria_name%type;
postt postavshic.postavshic_name%type;
kolvo postavki.postavki_kol%type;
begin
select distinct postavki_ciph, tovar_name, categoria_name, postavshic_name, postavki_kol
into ciphrrr, tovaar, catt, postt, kolvo
from tovar, categoria, postavshic, postavki
where postavki_ciph=ciphr and tovar_id=postavki_tov and categoria_id=postavki_cat and postavshic_id=postavki_post and postavki_kol is not null
group by postavki_ciph, tovar_name, categoria_name, postavshic_name, postavki_kol;
return ('Ciphr: '||ciphrrr||'. Nazvanie: '||tovaar||'. Categoria: ' || catt|| '. Postavshik: '||postt||'. Kolichestvo: ' ||kolvo);
end zadanie4;
Голосование за лучший ответ
Jurijus Zaksas Искусственный Интеллект (445813) 4 года назад
CREATE VIEW SOMEVIEW (YOUR_FUNCTION_RESULT) AS SELECT YOUR_FUNCTION_CALL FROM DUAL

Вместо DUAL в конкретно твоей СУБД может быть любая таблица с гарантированно одной записью (например, в Interbase это RDB$DATABASE), либо ты можешь сделать такую таблицу сам.

Если твоя функция должна принимать какие-то параметры из определенной таблицы, тогда делай VIEW из этой таблицы:

CREATE VIEW SOMEVIEW (YOUR_FUNCTION_RESULT) AS SELECT YOUR_FUNCTION_CALL(SOME_TABLE_FIELD) FROM SOME_TABLE
Claire RaifУченик (130) 4 года назад
Не особо поняла. У меня есть функция:
create or replace function zadanie4 (ciphr number)
return varchar is
ciphrrr postavki.postavki_ciph%type;
tovaar tovar.tovar_name%type;
catt categoria.categoria_name%type;
postt postavshic.postavshic_name%type;
kolvo postavki.postavki_kol%type;
begin
select distinct postavki_ciph, tovar_name, categoria_name, postavshic_name, postavki_kol
into ciphrrr, tovaar, catt, postt, kolvo
from tovar, categoria, postavshic, postavki
where postavki_ciph=ciphr and tovar_id=postavki_tov and categoria_id=postavki_cat and postavshic_id=postavki_post and postavki_kol is not null
group by postavki_ciph, tovar_name, categoria_name, postavshic_name, postavki_kol;
return ('Ciphr: '||ciphrrr||'. Nazvanie: '||tovaar||'. Categoria: ' || catt|| '. Postavshik: '||postt||'. Kolichestvo: ' ||kolvo);
end zadanie4;
Что именно из этого писать в скобки в возвращение?
Jurijus Zaksas Искусственный Интеллект (445813) >писать в скобки в возвращение Теперь уже я ничего не понял. Это на каком языке? Просто вызывай свою функцию в view и все. Например CREATE VIEW SOME_VIEW AS SELECT P.*, ZADANIE4(P.ciph) ZAD FROM postavki P
Похожие вопросы