2016-12-05 14 views
-4

私はテスターであり、私はたくさんの選択クエリを実行して、テストしている情報を除外しなければなりません。SQLでグローバル変数を定義して使用する方法

enter image description here

グローバル変数を作成し、同じ値を貼り付けるのではなく、それを使用する方法はありますか?

enter image description here

サンプルコード:

Select l.prod_package,m.* from avtt7m0 m, avtt7l0 l 
where l.cust_id='52317162090004' 
and l.ar_id=m.ar_id and m.lc_st_code='ACT'; 

Select m.* from avtt7m0 m, avtt7l0 l 
where l.cust_id='52317162090004' 
and l.ar_id=m.ar_id and m.lc_st_code='ACT'; 

Select * From AKTTD90 
where cust_id in ('52317162090004'); 

Select * From Kndt7m0 
where cust_id in ('52317162090004'); 
+0

t-sql変数を使用して事前に設定することができます。画像の代わりに使用しているコードを投稿すると、使用方法がわかります –

+2

使用しているdbmsはどれですか。 (答えはおそらく製品固有のものです。) – jarlh

+0

私はSQL開発者を使用しています。 avtt7m0 m、avtt7l0 lからl.prod_package、m。*を選択します。ここで、l.cust_id = '52317162090004'とl.ar_id = m.ar_idとm.lc_st_code = 'ACT'です。 avtt7m0 m、avtt7l0 lからm。*を選択します。ここで、l.cust_id = '52317162090004'、l.ar_id = m.ar_id、m.lc_st_code = 'ACT'です。 選択* AKTTD90からcust_id in( '52317162090004'); 選択* Kndt7m0からcust_id in( '52317162090004'); – VItas

答えて

0

あなたは変数を宣言し、それにcustomer値を割り当てることができます。

DECLARE @Customer BIGINT='52371762090004' 

SELECT * FROM AKTTD90 WHERE [email protected] 

UPDATE:上記のクエリを実行してみてください。

+0

それは動作していません。私はSQL開発者4.1を使用して原因を賭けることができますか?私はSQL querysについてあまり知らない。だから、私があなたを助けるためのすべての情報を提供するわけではありません。しかし、もし私ができるなら、私は答えを試みるでしょう。 – VItas

+0

@ VItas私は答えを更新しました。チェックを行う。 –

+0

エラーとなります。何が間違っているかも知っていますか?コマンドラインで1から始まるエラー: ORA-06550:行1、列9: PLS-00103:記号が発生しましたCUST_ID = @カスタマー エラーレポートKNDT7L0 FROM DECLARE @customer BIGINT = '52371762090004' SELECT * begin関数プラグマプロシージャーサブタイプタイプ<識別子> <ダブル識別子付き区切り記号>現在のカーソル削除 がすでに存在します 06550. 00000 - "行%s、列% s:\ n%s " *原因:通常、PL/SQLのコンパイル・エラーです。 *処置: – VItas

0

これはSQL Serverを対象としています。質問には特定のRDMSがありません。その後、Setそれが当時)ほとんどの場合、それを(使用@で始まる必要があり、変数を(Declareことができます。これは、このようなテーブル名の変数として特定のものに使用することができないという

SET @CustomerID = 12345 
SELECT * FROM dbo.Customers WHERE CustomerID = @CustomerID 

注意も。これらの変数は、彼らがGO文は生き残れないだろうという意味で、実際にはグローバルではないことに注意して、これを行うに

+0

です。SQL Developer 4.1はこの構文が気に入らないようです。ソーリー私はすべての情報を与えていない場合。私がSQLで新しくなったからといって、言及すべき重要なものがわからない。 – VItas

+0

がmysql/sqlデベロッパー用に編集されました。 (mysqlの宣言部分は必要ありません)。 – jleach

0

一つのオプションは、PL/SQL、パッケージ変数である:。

create or replace package steptest as 
    procedure set(a number); 
    function get return number; 
end; 
/

create or replace package body steptest as 
    x number; 
    procedure set(a number) is 
    begin 
    x:=a; 
    end; 
    function get return number is 
    begin 
    return x; 
    end; 
begin 
    x:=0; 
end;  
/

そして目できます。

exec steptest.set(1234); 

select steptest.get from dual; 
関連する問題