SQL:变量声明

SQL: Declaration of Variables

在 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 ANOTHER_NAME=@variablename;

这给了我一些从 "declare."

开始的错误
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.

就事物的应用而言,我刚开始时对数据库的了解很少。我正在努力变得更精通语法和使用。

如有任何帮助,我们将不胜感激。

带有变量声明的 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;