ORA-06550:Oracle SqlPlus

时间:2014-10-16 09:21:12

标签: oracle plsql

declare
doesExists number:=0;
begin
select count(1) into doesExists from tab where tname = 'EOSS2G_GREEN_RLDEP';
if doesExists = 1 
then
    execute immediate 'drop table EOSS2G_GREEN_RLDEP';
    --execute immediate 'create table EOSS2G_GREEN_RLDEP as select * from EOSS2G_RLDEP';
else
    execute immediate 'create table EOSS2G_GREEN_RLDEP as select * from EOSS2G_RLDEP';
end if;
end;
/

我得到的错误信息是:

PLS-00103: Encountered the symbol "end-of-file" when expecting one of the following:

& = - + ; < / > at in is mod remainder not rem
<> or != or ~= >= <= <> and or like like2
like4 likec between || multiset member submultiset
Position: 28, Line: 2, Column: 21
SQL: declare
doesExists number:=0
^-- error here -- ORA-06550: line 2, column 21:

我已经在线查看了各种解决方案,但他们仍无法帮助解决问题。

有人可以帮我解决这个问题吗?

2 个答案:

答案 0 :(得分:0)

实际上,这个特殊错误不是因为数据库而是因为我正在处理的平台。 我必须在平台中显式指定sql块分隔符才能提交上述语句。

答案 1 :(得分:0)

当我遇到这个问题时,我们发现在&#39; /&#39;之后的最后一行有一个额外的字符(我认为是^ Z)。一旦删除,该块对我来说运行良好。 DBA发现了这个问题,但我不记得他正在使用哪种软件向他展示这个角色。

你可以尝试删除/之后的每一行,看看是否有帮助。