J'ai écrit une requête DB2 pour effectuer les opérations suivantes:DB2 Equivalent à SQL's GO?
- Créer une table temporaire
- Sélectionnez à partir d'une requête de monstre/insérer dans la table temporaire
- Sélectionnez dans la table temporaire/supprimer de vieille table
- Sélectionnez dans la table temporaire/insérer dans une autre table
en MSSQL, je suis autorisé à exécuter les commandes les unes après les autres comme une requête longue. A défaut, je peux les délimiter avec les commandes 'GO'. Lorsque je tente cela dans DB2, je reçois l'erreur:
DB2CLI.DLL: ERROR [42601] [IBM][CLI Driver][DB2] SQL0199N The use of the reserved
word "GO" following "" is not valid. Expected tokens may include: "".
SQLSTATE=42601
Que puis-je utiliser pour délimiter ces instructions sans la table temporaire allant hors de portée?
C'est un peu compliqué dans DB2. Normalement, le délimiteur par défaut est le point-virgule, cependant, dans les corps des procédures stockées et al, le délimiteur est toujours un point-virgule tandis que le délimiteur utilisé _after_ la commande CREATE PROCUEDURE/whatever doit être quelque chose d'autre. Vous pouvez remplacer ce délimiteur dans l'environnement d'où vous appelez DB2. Traditionnellement, \\ est utilisé comme "délimiteur externe" mais vous pouvez utiliser n'importe quelle autre chaîne. –