2012-01-04 15 views
21

Oracleに変数を宣言して表示したいと考えています。Oracleで変数を宣言して表示する方法

は、T-SQLで、私は、私は、Oracleでこれを行うことができますどのようにこの

DECLARE @A VARCHAR(10) --Declares @A 
SELECT @A = '12' --Assigns @A 
SELECT @A --Displays @A 

ような何かをするだろう。

答えて

34

PL/SQLについて言えば、匿名ブロックに入れる必要があります。

define <varname>=<varvalue> 

そして、あなたがして値を表示することができます:

define <varname> 

そして例えば、としてクエリでそれを使用するあなたは、このように変数を定義することができます。sqlplusを使用している場合

DECLARE 
    v_text VARCHAR2(10); -- declare 
BEGIN 
    v_text := 'Hello'; --assign 
    dbms_output.Put_line(v_text); --display 
END; 
+0

申し訳ありません、古い投稿を復活させてください。これは、少なくとも私にとっては、dbms_output.put_lineがT-SQLの中で 'PRINT'文を効果的に実行しているということです。 Davidが投稿したものと私が探していたのは、最後の 'SELECT'文がクライアントアプリケーションで使用できる結果セットを返すことでした。あなたはこれを達成する方法を知っていますか?おかげさまで – InbetweenWeekends

+0

'dbms_output.Put_line(v_text);は、T-SQLの' PRINT @v_text; 'と同等の処理を行います。SQL開発者のDbms出力ウィンドウをクエリーと同じOracleに接続することを忘れないでください! –

+1

Script OutputパネルにDbmsの出力ステートメントがある場合は、これはすばやく簡単なチュートリアルです。 http://www.thatjeffsmith.com/archive/2012/05/enabling-dbms_output-by-default-in-sql-developer/ – MPaul

7

select * 
from tab1 
where col1 = '&varname'; 
+0

'&varname'構文はとても役に立ちました、ありがとう – Nacht

1

最近swしましたかMySQLの悩みを解決し、Oracleのより簡単なコマンドと論理的に同等の機能を期待していますか?それは私の場合であり、私は全く同じ問題を抱えていたからです。

Variable n number 
begin 
    :n := 1; 
end; 
print n 

真ん中のセクションでは、変数をバインドするPL/SQLのビットです:このコードはあなたに私はあなたが探しているものだと思います迅速かつ汚い印刷を行います。 print nからの出力は列形式であり、nの値を与えるだけではありません。私は恐れています。 - 取得するにSERVEROUTPUT

セットを:私はヒキガエル11でそれを実行したとき、それは私はあなたのコードが動作するはずです以下、その後のPL/SQLを使用している場合、それは

2

に役立ちます願っています。この

 n 
--------- 
     1 

のように返さそしてバッファを表示

DECLARE

v_text VARCHAR2(10); -- declare 

が開始

v_text := 'Hello'; --assign 
dbms_output.Put_line(v_text); --display 

end;

/- これはpl/sqlスクリプトを実行するために使用する必要があります

関連する問題