调用存储过程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;