无法 运行 阻止 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;
我正在尝试创建匿名块来更新 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;