有誰知道如何在DB2中運行以下SQL Server代碼?在DB2中聲明變量SQL
我正在轉換SQL Server腳本,以便它們將在DB2系統上運行,並且在使用DB2中的變量時遇到了一些問題。
T-SQL代碼
這顯然是不實際的代碼,但效果很好的一個例子。
DECLARE @INPUT_VALUE INT
SET INPUT_VALUE = 4756
SELECT *
FROM TABLE1
WHERE TABLE1.COLUMN1 = @INPUT_VALUE
有誰知道如何在DB2中運行以下SQL Server代碼?在DB2中聲明變量SQL
我正在轉換SQL Server腳本,以便它們將在DB2系統上運行,並且在使用DB2中的變量時遇到了一些問題。
T-SQL代碼
這顯然是不實際的代碼,但效果很好的一個例子。
DECLARE @INPUT_VALUE INT
SET INPUT_VALUE = 4756
SELECT *
FROM TABLE1
WHERE TABLE1.COLUMN1 = @INPUT_VALUE
我想這個forum posting,我引用下面,應該回答這個問題。
裏面一個過程,函數或觸發器定義,或在動態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 ;
我從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;
邁克爾,在第一個例子中認爲代碼的一部分被忽略了。看來你正在設置一個尚未聲明或創建的變量?我使用有效的表和列名運行此代碼,並返回錯誤。 – 2011-06-03 02:27:02
我認爲你是對的......我無法讓它工作,所以我編輯了問題以刪除它。 – 2011-06-03 18:10:10
如果我需要運行帶有一些輸入變量的通用腳本,我喜歡上一個。我是否正確地說變量存在於交易的生命中? – ESP 2015-05-27 11:36:39