web-dev-qa-db-fra.com

Déclarez une variable dans DB2 SQL

Quelqu'un sait-il comment exécuter le code SQL Server suivant dans DB2?

Je convertis des scripts SQL Server pour qu'ils s'exécutent sur un système DB2 et j'ai des problèmes pour me concentrer sur l'utilisation des variables dans DB2.

code T-SQL

Ce n'est évidemment pas le code réel mais fonctionne bien comme exemple.

DECLARE @INPUT_VALUE INT
SET INPUT_VALUE = 4756

SELECT *
FROM TABLE1
WHERE TABLE1.COLUMN1 = @INPUT_VALUE
25
I_AM_JARROD

J'imagine que publication sur le forum , que je cite en détail ci-dessous, devrait répondre à la question.


Dans une procédure, une fonction ou une définition de déclencheur, ou dans une instruction SQL dynamique (incorporée dans un programme hôte):

BEGIN ATOMIC
 DECLARE example VARCHAR(15) ;
 SET example = 'welcome' ;
 SELECT *
 FROM   tablename
 WHERE  column1 = example ;
END

ou (dans n'importe quel environnement):

WITH t(example) AS (VALUES('welcome'))
SELECT *
FROM   tablename, t
WHERE  column1 = example

ou (bien que ce ne soit probablement pas ce que vous voulez, car la variable doit être créée une seule fois, mais peut être utilisée par la suite par tout le monde, bien que son contenu soit privé par utilisateur):

CREATE VARIABLE example VARCHAR(15) ;
SET example = 'welcome' ;
SELECT *
FROM   tablename
WHERE  column1 = example ;

25
Michael Sharek

Je viens également de SQL Server et j'ai passé les 2 dernières semaines à découvrir comment exécuter des scripts comme celui-ci dans IBM Data Studio. J'espère que cela aide.

CREATE VARIABLE v_lookupid INTEGER DEFAULT (4815162342); --where 4815162342 is your variable data 
  SELECT * FROM DB1.PERSON WHERE PERSON_ID = v_lookupid;
  SELECT * FROM DB1.PERSON_DATA WHERE PERSON_ID = v_lookupid;
  SELECT * FROM DB1.PERSON_HIST WHERE PERSON_ID = v_lookupid;
DROP VARIABLE v_lookupid; 
11
JeffM