Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
Привет. я нашел пример работы команды - savepoint а он не фунциклирует, вид: SAVEPOINT before_updates ON ROLLBACK RETAIN CURSORS; UPDATE savings_account SET balance = balance - 100 WHERE cust# = 1234; IF SQLCODE <> 0 THEN ROLLBACK TO SAVEPOINT before_updates; ELSE UPDATE checking_account SET balance = balance + 100 WHERE cust# = 1234; IF SQLCODE <> 0 THEN ROLLBACK TO SAVEPOINT before_updates; END END COMMIT; ---------------------- так вот в строке IF SQLCODE <> 0 THEN - выдает ошибку: sql0104n обнаружен неправельный элемент "IF SQLCODE <> 0 THEN " после текста "begin-of-statement". список правельных элементов: "<space>". Что за дела, ведь это рабочий пример из мануала ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 07:15 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
IF заканчивайте Код: plaintext Код: plaintext А у вас объявлен в процедуре CONTINUE HANDLER FOR SQLEXCEPTION Или, по меньшей мере, для тех SQLSTATE, которые могут появиться в результате этих UPDATE? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 10:06 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
Данная процедура написана как есть в мануале db2 udb v8.2 sql cookbook я лишь создал свою табличку с данными полями и данными. я так понимаю, что инторпритатор показывает на неправельное обращение с глобальной переменной sqlcode в операторе If, и я так же предпологал что данный код будет работать без дополнительных конфигураций в базе или .т.п. но вот что надо сделать, что бы данная проверка на наличие ошибки при выполнении запроса выполнялось? З.Ы. end if - ничего не дал. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 12:30 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. А IF надо закрывать END IF; Если в этой sql cookbook не так - отдельный привет аффтару! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:01 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
Про END IF см. здесь http://publib.boulder.ibm.com/infocenter/db2luw/v8/topic/com.ibm.db2.udb.doc/admin/r0005649.htm db2ae2e81.pdf SQLCODE and SQLSTATE variables in SQL procedures To help debug your SQL procedures, you might find it useful to insert the value of the SQLCODE and SQLSTATE into a table at various points in the SQL procedure, or to return the SQLCODE and SQLSTATE values in a diagnostic string as an OUT parameter. To use the SQLCODE and SQLSTATE values, you must declare the following SQL variables in the SQL procedure body: DECLARE SQLCODE INTEGER DEFAULT 0; DECLARE SQLSTATE CHAR(5) DEFAULT ‘00000’; DB2® implicitly sets these variables whenever a statement is executed. If a statement raises a condition for which a handler exists, the values of the SQLSTATE and SQLCODE variables are available at the beginning of the handler execution. However, the variables are reset as soon as the first statement in the handler is executed. Therefore, it is common practice to copy the values of SQLSTATE and SQLCODE into local variables in the first statement of the handler. In the following example, a CONTINUE handler for any condition is used to copy the SQLCODE variable into another variable named retcode. The variable retcode can then be used in the executable statements to control procedural logic, or pass the value back as an output parameter. BEGIN DECLARE SQLCODE INTEGER DEFAULT 0; DECLARE retcode INTEGER DEFAULT 0; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION, SQLWARNING, NOT FOUND SET retcode = SQLCODE; executable-statements END Note: When you access the SQLCODE or SQLSTATE variables in an SQL procedure, DB2 sets the value of SQLCODE to 0 and SQLSTATE to ‘00000’ for the subsequent statement. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:06 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
(не видел письма Марка) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:07 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
Упс, сглупил, я просто данный запрос пихал не в ХП, а просто из проги. наверно дело в этом! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 13:20 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
А вообще, такие вещи удобнее ИМХО делать так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. Все, что между внутренним блоком BEGIN ... END либо выполнится, либо нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.06.2006, 14:06 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
to Mark Barinstein у меня встречная проблема: я пробовал выполнить ваш запрос в Центре управления DB2, в редакторе команд, но инторпритатор ругаеться на команды описание переменных - DECLARE SQLCODE INT; DECLARE CONTINUE HANDLER FOR SQLEXCEPTION BEGIN END; а так же на конструкцию IF ELSE END IF в чем дело ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 08:15 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
Наверное, у вас statement termination character неправильный, и его надо сменить с ; на @ У Control Center есть поле ввода Statement termination character внизу слева. У Command Line Processor опция -td@ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 08:32 |
|
||
|
ошибка в синтаксисе ?
|
|||
|---|---|---|---|
|
#18+
Большое спосибо за помощь, все получилось, работает, но вот не могу найти созданную ХП, нигде в Центре управления, может напоследок подскажите где можно найти созданные ХП ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.06.2006, 09:12 |
|
||
|
|

start [/forum/topic.php?fid=43&fpage=130&tid=1605271]: |
0ms |
get settings: |
10ms |
get forum list: |
21ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
62ms |
get tp. blocked users: |
2ms |
| others: | 253ms |
| total: | 416ms |

| 0 / 0 |
