oracle PLS-00103 执行简单查询后出错
Posted
技术标签:
【中文标题】oracle PLS-00103 执行简单查询后出错【英文标题】:oracle PLS-00103 Error after executing a simple query 【发布时间】:2021-12-12 10:19:54 【问题描述】:这是我在 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”:
开始函数杂注过程子类型类型 当前光标删除 先于存在 在“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
【问题讨论】:
【参考方案1】: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;
【讨论】:
以上是关于oracle PLS-00103 执行简单查询后出错的主要内容,如果未能解决你的问题,请参考以下文章
PLS-00103:在 Oracle 11g 中遇到符号“DECLARE”
oracle - PLS-00103 & ORA -06550 关于程序