【问题标题】:Define SQL Plus Variable定义 SQL Plus 变量
【发布时间】:2018-06-14 04:13:10
【问题描述】:

我在 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” 以下:

PLS-00103:遇到符号 “结束”。

【问题讨论】:

  • 它仍然显示相同的错误

标签: sql oracle sqlplus


【解决方案1】:

你应该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;
/

【讨论】:

    【解决方案2】:

    您不能将“select”的输出分配给变量:

    "variable:= select;"
    

    但是,您可以使用“INTO”子句将此值分配给变量:

    "select x into v_x"
    

    当您将 select 的输出分配给绑定变量时,您必须使用带有 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;
    /
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-07-29
      • 1970-01-01
      • 1970-01-01
      • 2020-07-23
      • 2012-06-24
      • 1970-01-01
      • 2019-12-26
      • 1970-01-01
      相关资源
      最近更新 更多