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
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 ;
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;