ORA-06550 : Oracle SqlPlus


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:

我已经在网上研究了各种解决方案,但它们仍然无助于解决问题。

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

当我遇到这个问题时,我们发现在"/"之后的最后一行有一个额外的字符(我认为是^Z(。一旦它被删除,块对我来说运行良好。DBA发现了这个问题,但我不记得他用什么软件向他展示了这个角色。

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

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

最新更新