我遇到了存储过程调用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 invalid statment
出什么问题了?
我把电话改成
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为我提供了begin/end块的declare部分中varchar的长度
发布于 2013-12-03 17:25:41
execute是一个SQL/Plus命令。要从另一个应用程序运行您的过程,只需将调用包装在PL/SQL块中:
begin
pkg_titularitalia.insertar(1,12,'123','123', 123, null);
end;https://stackoverflow.com/questions/20347169
复制相似问题