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;
column var new_value valueFor_var
select count(1) as valueFor_var from dual;
select * from dual where rownum = &var;
在 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;
column var new_value valueFor_var
select count(1) as valueFor_var from dual;
select * from dual where rownum = &var;