|
Не получается написать хранимую процедуру.
|
|||
---|---|---|---|
#18+
Доброго всем времени! Фаербёрд 2.5. Пытаюсь написать хранимую процедуру. Суть не затейлива: отыскать в таблице по условиям такую же запись. Код: 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.
При попытке выполнить все это хозяйство, получаю: : PrepareStatement : -Dynamic SQL Error -SQL error code = -104 -Token unknown - line 1, column 1 -BEGIN Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16.
Что ему не нравиться нравится? ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2015, 11:21 |
|
Не получается написать хранимую процедуру.
|
|||
---|---|---|---|
#18+
bsi82Что ему не нравиться? Используй isql. Posted via ActualForum NNTP Server 1.5 ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2015, 11:52 |
|
Не получается написать хранимую процедуру.
|
|||
---|---|---|---|
#18+
Ну для начала секции From и into поменять местами Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2015, 11:53 |
|
Не получается написать хранимую процедуру.
|
|||
---|---|---|---|
#18+
Привет. select p.ap,p.initialsession,p.session, p.number, p.amount,p.filename into :ap,:initialsession,:session,:number,:amount,:filename from payments p where p.id=:in_id; into пишется в самом конце Код: plsql 1. 2. 3. 4. 5.
if cnt>0 then Любое логическое условие заключается в скобки: Код: plsql 1.
С уважением, Polesov. ... |
|||
:
Нравится:
Не нравится:
|
|||
04.10.2015, 20:49 |
|
Не получается написать хранимую процедуру.
|
|||
---|---|---|---|
#18+
create procedure CHECK_DOUBLE( ( IN_ID INTEGER ) AS declare variable ap varchar(50); declare variable session varchar(50); declare variable initialsession varchar(50); declare variable number varchar(50); declare variable amount varchar(50); declare variable filename varchar(50); declare variable cnt integer; BEGIN select p.ap,p.initialsession,p.session, p.number, p.amount,p.filename from payments p where p.id=:in_id into :ap,:initialsession,:session,:number,:amount,:filename; select count(p.id) from payments p join status s on p.id=s.id_payment where p.id<>:in_id and p.ap=:ap and p.session=:session and p.initialsession=:initialsession and p.number=:number and p.amount=:amount and p.filename=:filename and s.status<>'NEW' into :cnt; if (cnt>0) then update status set status='DOUBLE' where id_payment=:in_id; END В таком виде благополучно все съело. Спасибо огромное! Просто привыкший я к plsql ... |
|||
:
Нравится:
Не нравится:
|
|||
05.10.2015, 14:28 |
|
|
start [/forum/topic.php?fid=40&gotonew=1&tid=1562610]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
27ms |
get topic data: |
9ms |
get first new msg: |
7ms |
get forum data: |
2ms |
get page messages: |
49ms |
get tp. blocked users: |
1ms |
others: | 255ms |
total: | 381ms |
0 / 0 |