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

Откуда:
Сообщений: 150
Подскажите почему в данном вопросе правильным считается ответ D? Ведь ответ B тоже подходит и успешно отрабатывает.

Картинка с другого сайта.
Картинка с другого сайта.

ведь переменная инициализирована значением.

declare

emp_job employees.job_id%type := 'ST_CLERK';
emp_salary employees.salary%type := 3000;
my_rec employees%rowtype;
cursor c1 (job varchar2, max_wage number) is
select * from employees where job_id = job and salary > max_wage;
k number;

begin
open c1 (emp_job, 3000);
loop
fetch c1 into my_rec;
exit when c1%notfound;
DBMS_OUTPUT.PUT_LINE(my_rec.last_name||' '||my_rec.job_id||' '||my_rec.salary);
end loop;
k := c1%rowcount;
close c1;
DBMS_OUTPUT.PUT_LINE(k);
end;


anonymous block completed
Nayer ST_CLERK 3200
Bissot ST_CLERK 3300
Mallin ST_CLERK 3300
Ladwig ST_CLERK 3600
Stiles ST_CLERK 3200
Rajs ST_CLERK 3500
Davies ST_CLERK 3100
7
18 окт 14, 13:35    [16724817]     Ответить | Цитировать Сообщить модератору
 Re: курсоры с параметром  [new]
stax..
Guest
Marishka25,
мож связано с тем, что в дальнейшем (до открытия) значение переменной может поменятся

.....
stax
18 окт 14, 16:03    [16725036]     Ответить | Цитировать Сообщить модератору
 Re: курсоры с параметром  [new]
eev
Member

Откуда: -
Сообщений: 1156
Marishka25,
имхо, похоже ответ расчита на "тупо в лоб" указать, т.к. Е тоже катит - регист не играет роли. Значит исключая дублирующие ответы, а нужно один, остается только совсем не допускающий разночтения.
18 окт 14, 20:37    [16725690]     Ответить | Цитировать Сообщить модератору
 Re: курсоры с параметром  [new]
Marishka25
Member

Откуда:
Сообщений: 150
так же еще интересует, почему фактические параметры в курсор нельзя передавать по имени, таким же образом как и в процедурах. Ведь при объявлении курсора также указываются в спецификации формальные параметры, как и в процедуре.
Например:
open c1 (emp_job => job, 3000 => max_wage);


выдает ошибку:

Error report -
ORA-06550: Строка 9, столбец 21:
PLS-00306: ошибочно число или типы аргументов при обращении к 'JOB'
20 окт 14, 13:30    [16730780]     Ответить | Цитировать Сообщить модератору
 Re: курсоры с параметром  [new]
Marishka25
Member

Откуда:
Сообщений: 150
Marishka25
так же еще интересует, почему фактические параметры в курсор нельзя передавать по имени, таким же образом как и в процедурах. Ведь при объявлении курсора также указываются в спецификации формальные параметры, как и в процедуре.
Например:
open c1 (emp_job => job, 3000 => max_wage);


выдает ошибку:

Error report -
ORA-06550: Строка 9, столбец 21:
PLS-00306: ошибочно число или типы аргументов при обращении к 'JOB'


прошу прощения, туплю, все работает просто местами нужно поменять значение и имя формального параметра))))

open c1 (job => emp_job, max_wage => 3000);
20 окт 14, 13:51    [16730943]     Ответить | Цитировать Сообщить модератору
 Re: курсоры с параметром  [new]
j2k
Member

Откуда: Новосибирск
Сообщений: 550
stax..
Marishka25,
мож связано с тем, что в дальнейшем (до открытия) значение переменной может поменятся

.....
stax

+1
20 окт 14, 15:19    [16731561]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить