2017-02-20 119 views
1

在sql中定義變量的最佳做法是什麼?我在這裏和其他地方看過一些其他的帖子,但是我嘗試過的東西還沒有成功。SQL:變量聲明

我使用下面的語法,但馬不喜歡乾草。

 
declare @variablename number(10) 
set @variablename = (select COLUMN_NAME from TABLE_NAME where ANOTHER_COLUMN_NAME='something') 
select MORE_COLUMN_NAMES from "NAME" where [email protected]; 

這給了我一些從「聲明」開始的錯誤。

 
Error report - 
ORA-06550: line 1, column 9: 
PLS-00103: Encountered the symbol "@" when expecting one of the following: 

    begin function pragma procedure subtype type "an identifier" 
    "a double-quoted delimited-identifier" current cursor delete 
    exists prior 
The symbol "@" was ignored. 

我剛開始的時候對於應用程序的東西只有很少的數據庫知識。我正在努力學習更多的語法和用法。

任何幫助,將不勝感激。

+0

接受的在這篇文章中回答應該有所幫助http://stackoverflow.com/questions/11754781/how-to-declare-a-variable-in-mysql – grizzthedj

+0

你有這個標籤爲MySQL和Oracle。你的問題涉及哪個數據庫? –

+1

根據錯誤消息,我刪除了Mysql標記 – Aleksej

回答

1

與變量聲明PL/SQL塊應該是這樣的:

declare 
    var number; 
    var2 number; 
begin 
    select count(1) 
    into var 
    from dual; 
    var2 := var * 2; 
    dbms_output.put_line('Var2 = ' || var2); 
end; 

在sqlplus可以使用bind variables

variable var number 
select count(1) into :var from dual; 
select * from dual where rownum = :var; 

甚至substitution variables

column var new_value valueFor_var 
select count(1) as valueFor_var from dual; 
select * from dual where rownum = &var;