- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
PROCEDURE login_attr(a_id IN CHAR, a_pw IN VARCHAR2, v_ret IN OUT VARCHAR2)
IS
v_count INTEGER;
BEGIN
v_count := 0;
SELECT NVL (COUNT (attrib_desc), 0)
INTO v_count
FROM tab_attr a,
tab_users b
WHERE a.msc_cd = b.user_dept
AND a.attr_cd = 'CD'
AND lattr_cd = 'ABCD'
AND UPPER (user_no) = UPPER (a_id)
AND UPPER (user_pw) = UPPER (a_pw);
IF v_count > 0 THEN
SELECT attrib_desc || '@' || user_lang || '@' || user_autoimg ||
'@' || user_imgtime || '@' || user_loc || '@' ||
user_dept
INTO v_ret
FROM tab_attr a,
tab_users b
WHERE a.msc_cd = b.user_dept
AND a.attr_cd = 'CD'
AND lattr_cd = 'ABCD'
AND UPPER (user_no) = UPPER (a_id)
AND UPPER (user_pw) = UPPER (a_pw);
ELSE
v_ret := ' ';
END IF;
END;
Нам нужно больше селектов.
P.S. почему в предпросмотре язык Java, хотя выбран SQL?
DBdev 05.02.2014 18:07 # +7
У Вас же PL/SQL оракловый, вот оно и намекает, что пора перебрасывать всю бизнес логику на джаву.
slbsomeone 05.02.2014 18:19 # +1
Я не знал. Отстаю от жизни.
kipar 05.02.2014 21:35 # +4
wvxvw 05.02.2014 21:34 # +1
bormand 06.02.2014 07:21 # +2
Зависит от уровня изоляции. В общем случае - не обязан.
DBdev 06.02.2014 12:51 # +1
это ж когда каунт нулл вернуть может?
В Oracle PL\SQL для этого случая (возвращаясь к тексту ГК) заворачивают SQL в exception, с catch no_data_found, как-то так...
bormand 06.02.2014 13:55 # +2
Обжегшись на sum'е дует на count ;)
eth0 06.02.2014 16:53 # 0
Хотя, конечно, я мог что-то и перепутать, дело давнее.
defecate-plusplus 06.02.2014 13:14 # +2
ref cursor ненужно?
bormand 06.02.2014 13:50 # 0
Очень весело будет, когда понадобится вернуть email юзера.
Хотя мне кажется, что автор замутил бы для этого отдельную процедуру...