Объявить переменную в DB2 SQL - PullRequest
24 голосов
/ 02 июня 2011

Кто-нибудь знает, как запустить следующий код SQL Server в DB2?

Я преобразовываю сценарии SQL Server, чтобы они выполнялись в системе DB2, и у меня возникают некоторые проблемы, связанные с использованием переменных в DB2.

Код T-SQL

Это, очевидно, не фактический код, но хорошо работает в качестве примера.

DECLARE @INPUT_VALUE INT
SET INPUT_VALUE = 4756

SELECT *
FROM TABLE1
WHERE TABLE1.COLUMN1 = @INPUT_VALUE

Ответы [ 2 ]

21 голосов
/ 02 июня 2011

Я предполагаю, что сообщение на форуме , которое я цитирую полностью ниже, должно ответить на вопрос.


Внутри определения процедуры, функции или триггера или в динамическом операторе SQL (встроенном в хост-программу):

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

или (в любой среде):

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

или (хотя это, вероятно, не то, что вам нужно, поскольку переменная должна быть создана только один раз, но после этого ее могут использовать все, хотя ее содержимое будет приватным для каждого пользователя):

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

11 голосов
/ 05 января 2012

Я тоже из истории SQL Server и провел последние 2 недели, разбираясь, как запускать подобные сценарии в IBM Data Studio.Надеюсь, это поможет.

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; 
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...