ORA-00900无效声明



调用存储过程ORA-00900时出错。我的代码是:

呼叫:

execute pkg_titularitalia.insertar(1,12,'123','123', 123, null);

存储程序:

 PROCEDURE Insertar(pIdUsuarioSeg           IN number,
                     pIdTitular             IN OUT number,
                     pPartitaIVA            IN OUT varchar,
                     pCodigoIS              IN OUT varchar,
                     pIdUsuarioModificacion IN OUT number,
                     pFechamodificacion     IN OUT date) AS
  BEGIN
    DBMS_OUTPUT.PUT_LINE('aa');
  END;

如果我在控制台中进行测试,我会在DBMS控制台中看到结果,但当我在代码中执行时,会出现错误ORA-00900无效语句

怎么了?

我更改了的呼叫

declare 
  a number := 5643;
  b varchar := '123';
  c varchar := '';
  d number := 5643;
  e date;
begin
  -- Call the procedure
  execute insertar(1, a, b, c, d, e);
end;

正如大家所建议的,给我的是ORA-06550

=========================================================================

解决方案(我明白了)

declare 
      a number := 5643;
      b varchar(13) := '123';
      c varchar(39) := '';
      d number := 5643;
      e date;
    begin
      -- Call the procedure
      execute insertar(1, a, b, c, d, e);
    end;

006550在开始/结束块的声明部分中给了我varchar的长度

execute是一个SQL/Plus命令。要从另一个应用程序运行过程,只需将调用封装在PL/SQL块中即可:

begin
  pkg_titularitalia.insertar(1,12,'123','123', 123, null);
end;

最新更新