ORA-00900声明无效

时间:2013-12-03 09:21:16

标签: oracle plsql

我收到商店程序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的长度

1 个答案:

答案 0 :(得分:0)

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

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