我在SQL Plus中使用命令创建变量:
Variable getstatus number
Begin
:getstatus:= select trim(status) from AML.amletl_load_status where mov_date
in(select max(mov_date) mov_date from AML.amletl_load_status);
End;
/
提出
PLS-00103:在期待其中一个时遇到符号“SELECT” 以下:< - + case mode not null a double-quoted delimited - 标识符继续平均计数...
PLS-00103:遇到符号 “END”。
答案 0 :(得分:0)
你应该select
into :variable_name
^
| colon sign here
基于Scott模式的示例:
SQL> var getstatus number
SQL>
SQL> begin
2 select max(empno) into :getstatus from emp
3 where deptno in (select min(deptno) from dept);
4 end;
5 /
PL/SQL procedure successfully completed.
SQL> print getstatus
GETSTATUS
----------
7934
SQL>
应用于您的代码:
Variable getstatus number
Begin
select trim(status) into :getstatus from AML.amletl_load_status
where mov_date in (select max(mov_date) mov_date from AML.amletl_load_status);
End;
/
答案 1 :(得分:0)
您无法分配"选择"的输出。变量为:
"variable:= select;"
但是,您可以使用" INTO"将此值赋值为变量的子句:
"select x into v_x"
当您将select的输出分配给bind变量时,您必须使用":"带有INTO子句的前缀如下:
Variable getstatus number;
Begin
select trim(status)
into :getstatus
from AML.amletl_load_status where mov_date
in(select max(mov_date) mov_date from AML.amletl_load_status);
End;
/