Declarar uma variável em DB2 SQL

alguém sabe como executar o seguinte código de servidor SQL em DB2?

estou a converter scripts do servidor SQL de modo que eles irão correr num sistema DB2 e estou a ter alguns problemas a envolver a minha cabeça em torno do uso de variáveis em DB2.

código T-SQL

Este não é obviamente o código real, mas funciona bem como um exemplo.

DECLARE @INPUT_VALUE INT
SET INPUT_VALUE = 4756

SELECT *
FROM TABLE1
WHERE TABLE1.COLUMN1 = @INPUT_VALUE
Author: jcateca, 2011-06-02

2 answers

Imagino que este posting do fórum , que passo a citar completamente abaixo, deve responder à pergunta.


Dentro de um procedimento, função ou definição de trigger, ou numa instrução SQL dinâmica (incorporada num programa host):

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

Ou (em qualquer ambiente):

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

Ou (embora isto provavelmente não seja o que você quer, uma vez que a variável precisa ser criada apenas uma vez, mas pode ser usada posteriormente por todos, embora seu conteúdo será privado em um por usuário base):

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

 19
Author: Michael Sharek, 2011-06-03 18:10:19
Também venho de um fundo de um servidor SQL e passei as últimas duas semanas a descobrir como executar scripts como este em IBM Data Studio. Espero que ajude.
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; 
 8
Author: JeffM, 2012-01-05 05:57:16