Подтвердить что ты не робот

Объявить переменную в DB2 SQL

Кто-нибудь знает, как запустить следующий код 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
4b9b3361

Ответ 1

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


Внутри определения процедуры, функции или триггера или динамического оператора 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 ;

Ответ 2

Я тоже из фона 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;