[ora] [closed] Вопрос из экзамена

SergeRRRRRR

 
Which two tasks should be created as functions instead of as procedures? (Choose two.)
A.
reference host or bind variables in a PL/SQL block of code
B.
tasks that compute and return multiple values to the calling environment
C.
tasks that compute a value that must be returned to the calling environment
D.
tasks performed in SQL that increase data independence by processing complex data analysis within the Oracle server, rather than by retrieving the data into an application

По идее один ответ C, другой я бы ответил D. Но во многих дампах почему-то фигурирует A, wtf, проясните плз.

marat7256

Не понятно, почему ты решил D, ибо "rather than by retrieving the data into an application", то есть функция ничего не возвращающая, что и есть процедура.

SergeRRRRRR

я понял это не совсем так,а примерно следующим образом - какие-либо данные обрабатываем не в приложении, а отдаем их оракловой функции, где уже на выходе получаем нужным образом сформированные данные.

marat7256

Ну, у меня английским не очень, но я конструкцию понял так: task that increase ...by processing ..., rather than by retrieving ...
Что-то вроде переноса обработки данных с уровня приложения на уровень базы.

SergeRRRRRR

ну именно это я и имел в виду.

evgen5555

Если присмотреться внимательнее, можно заметить, что в варианте D возврат значения не подразумевается.

yroslavasako

я вот не понимаю, почему здесь не три функции. Чем вот это плохо:
tasks that compute and return multiple values to the calling environment
oracle что, кортежи возвращать не умеет?

SergeRRRRRR

здесь к тому, что
1) возврат результата необязателен
2) может быть осуществлен out параметрами процедуры.
Поэтому данная задача может решаться как процедурой так и функцией.

SergeRRRRRR

Снимаю вопрос, второй ответ все же A, заморочился на host-переменных, как на переменных сессии, а тут вопрос, видимо, касается SQL-контекста, то есть использование функции возвращающей значение для вывода через селект или в where.

ava3443

Имхо к дампам тестов по Oracle нужно относиться крайне осторожно т.к. там слишком много кривых (=криво записанных по памяти) вопросов и ещё больше неверных ответов на них..

ava3443

второй ответ все же A
не понимаю почему A: "reference host or bind variables in a PL/SQL block of code" нельзя ни в PL/SQL-процедурах, ни в PL/SQL-функциях.
имхо тут как раз вопрос кривой и надо про него забыть, на экзамене такого нет.

evgen5555

Потому что афтар неправильно понял вопрос. И варианты ответов.

SergeRRRRRR

потому что, в данном контексте ты подразумеваешь host переменную, как переменную окружения, сессии, которые можно определить как
 
 
SQL> variable t number
begin
:t:=5;
end;
/
print t
t
-----
5

Но еще у этих названий есть SQL-контекст:
 
select func(x) from dual where 1=func(2)  

Здесь func(1) и хост и бинд переменная.
Оставить комментарий
Имя или ник:
Комментарий: