oracle PLS-00103 执行简单查询后出错

oracle PLS-00103 Error after executing a simple query

这是我在 Oracle SQL Developer 中 运行 编写的代码,接下来出现错误: 这是一个非常简单的查询,它有什么问题吗?

DECLARE zero varchar(20);
DECLARE emptys;
begin
zero := '0';
emptys := null;
IF(emptys = zero)   then 
DBMS_OUTPUT.put_line('yes');
ELSE
dbms_output.Put_line('no'); 
end if;
end;
    

错误从第 1 行开始 - 命令 - 声明零 varchar(20); 声明空; 开始 零:='0'; 清空 := null;

IF(emptys = zero)   then 
DBMS_OUTPUT.put_line('yes');
ELSE
dbms_output.Put_line('no'); 
end if;

结束;

错误报告 - ORA-06550:第 2 行,第 5 列: PLS-00103:在期望以下之一时遇到符号“DECLARE”:

begin function pragma procedure subtype 类型 当前光标删除 先验存在 在“DECLARE”之前插入符号“begin”以继续。 ORA-06550:第 13 行,第 74 列: PLS-00103:在期望以下之一时遇到符号“文件结束”:

( begin case declare end exception exit for goto if loop mod null pragma raise return select update while with << 继续关闭当前删除获取锁 insert open rollback savepoint set sql execute commit forall 合并管道清除 json_exists json_value json_query json_object json_array 06550.00000 - “行 %s,列 %s:\n%s” *原因:通常是 PL/SQL 编译错误。 *行动:

DECLARE表示变量声明部分的开始。你只会有一个这样的部分。您不必为声明的每个变量重复该关键字。

您还没有为变量 emptys 提供数据类型。我假设您希望它是 varchar2(20)

DECLARE 
  zero varchar(20);
  emptys varchar2(20);
begin
  zero := '0';
  emptys := null;
  IF(emptys = zero)   then 
    DBMS_OUTPUT.put_line('yes');
  ELSE
    dbms_output.Put_line('no'); 
  end if;
end;