无法 运行 阻止 pl/sql 获取 ora-06550 和 pls-00103

Cannot run block in pl/sql getting ora-06550 and pls-00103

我正在尝试创建匿名块来更新 esri 的 oracle 版本化视图。当我从没有 begin/end 的 pl/sql 开发人员处执行代码时,代码运行良好。但是只要我添加 begin/end 我就会出错。

begin
call sde.version_util.set_current_version ('ARCFM8.vtemp');
call sde.version_user_ddl.edit_version ('ARCFM8.vtemp', 1);

update arcfm8.t_conductormarker_vw set CEAREFERENCEDRAWING = 'my fisrt multiversion view update'
where OBJECTID = 3;

call sde.version_user_ddl.edit_version ('ARCFM8.vtemp', 2);
end;

Call 是 SQL 关键字而不是 PLSQL 关键字。它会在匿名块之外工作,但不会在其中工作。 PLSQL 会为您解决这个问题,所以您只需要...

begin
 sde.version_util.set_current_version ('ARCFM8.vtemp');
 sde.version_user_ddl.edit_version ('ARCFM8.vtemp', 1);

 update arcfm8.t_conductormarker_vw set CEAREFERENCEDRAWING = 'my fisrt multiversion view update' where OBJECTID = 3;

 sde.version_user_ddl.edit_version ('ARCFM8.vtemp', 2);
end;