Bonjour à tous !
Je recherche désespérément de l'aide afin de comprendre comment fonctionnent les transactions avec DB2 dans un script.
Si cela ne me pose pas de soucis avec PostgreSQL, MariaDB ou MsSQL, je dois avouer que je suis totalement perdu en DB2.
J'ai tenté ce genre de chose :
Mais pour ce cas, j'ai un message d'erreur SQL 42601: SQL0199 (le mot clé IF est mal placé...)Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 SAVEPOINT before_updates ON ROLLBACK RETAIN CURSORS; UPDATE table_xxxxx SET column1 = column1 - 100 WHERE column2 = 'ABC'; IF SQLCODE <> 0 THEN ROLLBACK TO SAVEPOINT before_updates; ELSE UPDATE table_xxxxx SET column1 = column1 + 100 WHERE column2 = 'ABC'; IF SQLCODE <> 0 THEN ROLLBACK TO SAVEPOINT before_updates; END END COMMIT;
Je n'ai pas non plus compris comment désactiver l'auto-commit (ni comment savoir s'il est actif), ou s'il est obligatoire de passer par une procédure stockée...
Bref, je suis au niveau zéro de la connaissance en DB2 et je ne serais pas contre un peu d'aide. :calim2:
Merci !
Environnement : DB2 AS400/iAccess V7R1 ou V7R2... je suis pas certains... :oops:
Pas d'accès à la console. Exécution des requêtes via DBeaver.