DB2 d'IBM iSeries: SI EXISTE syntaxe de l'instruction

Je suis familier avec Sybase qui permet des requêtes avec format: S'il EXISTE () then ... ELSE ... END if (ou très proche). Ce une déclaration puissante qui permet: "si elle existe, puis mise à jour, insérer else".

Je suis en train d'écrire des requêtes pour DB2 sur IBM iSeries boîte. J'ai vu le CAS de mots clés, mais je ne peux pas le faire fonctionner. Je reçois toujours le message d'erreur: "mot Clé de CAS ne devrait pas."

Exemple:

If EXISTS ( SELECT * from MYTABLE where KEY = xxx ) 
PUIS UPDATE MATABLE SET VALEUR = zzz OÙ KEY = xxx 
D'AUTRE INSERT INTO MATABLE (CLÉ, VALEUR) VALUES (xxx, zzz) 
FIN DE SI 

Est-il un moyen de le faire à l'encontre de DB2 sur IBM iSeries? Actuellement, je exécuter deux requêtes. Sélectionnez d'abord un, puis mon code Java décide de mettre à jour/insert. Je serais plutôt de l'écrire une seule requête que mon serveur est situé loin (dans le Pacifique).

OriginalL'auteur kevinarpe | 2011-08-03