【问题标题】:Cannot run block in pl/sql getting ora-06550 and pls-00103无法在 pl/sql 中运行块获取 ora-06550 和 pls-00103
【发布时间】:2018-08-03 00:00:24
【问题描述】:

我正在尝试制作匿名块来更新 esri 的 oracle 版本化视图。当我在没有开始/结束的情况下从 pl/sql 开发人员执行代码时,代码运行良好。但是一旦我添加了开始/结束,我就会得到错误。

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;

【问题讨论】:

    标签: sql oracle plsql plsqldeveloper


    【解决方案1】:

    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;
    

    【讨论】:

    • 澄清一点:CALL 是 Oracle 的 SQL*Plus 命令行数据库客户端中的命令 - 它不是 SQL 语句。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-01-18
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 1970-01-01
    • 2018-04-12
    • 2015-03-18
    相关资源
    最近更新 更多