DB2で次のSQL Serverコードを実行する方法を知っている人はいますか?
DB2システムで実行されるようにSQL Serverスクリプトを変換していますが、DB2での変数の使用に頭を悩ませる問題があります。
T-SQLコード
これは明らかに実際のコードではありませんが、例としてはうまく機能します。
DECLARE @INPUT_VALUE INT
SET INPUT_VALUE = 4756
SELECT *
FROM TABLE1
WHERE TABLE1.COLUMN1 = @INPUT_VALUE
私はこれを想像します フォーラムへの投稿 (以下で完全に引用します)は質問に答えるべきです.
プロシージャー、関数、またはトリガー定義内、または動的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;