- SQL code
create or replace procedure P_SiteBissusSumStat(ACenterID varchar2,--网点营业统计报表 ABeginDate varchar2, AEndDate varchar2, ErrString out varchar2, RetValue out integer, v_cur out MyPKG_public.Cursor_Ref)
-----------------------------------------------------
DECLARE
RetValue NUMBER(4);
ErrString VARCHAR2(100);
v_cur MyPKG_public.Cursor_Ref;
begin
call P_SiteBissusSumStat('76901',--网点营业统计报表
'2012-3-7',
'2012-3-7',
ErrString,
RetValue,
v_cur)
end ;
上面这样写不行,在Pl/sql中执行,这个又是什么类型呢?MyPKG_public.Cursor_Ref
------解决方案--------------------
代码迷推荐解决方案:oracle存储过程,http://www.daimami.com/search?q=177537
------解决方案--------------------
后面三个参数是输出,不需要赋值的。
exec P_SiteBissusSumStat('76901','2012-3-7','2012-3-7')
MyPKG_public.Cursor_Ref 应该返回游标结果集。
------解决方案--------------------
直接就可以调用,不用call吧
- SQL code
DECLARE RetValue NUMBER(4); ErrString VARCHAR2(100); v_cur MyPKG_public.Cursor_Ref;beginP_SiteBissusSumStat('76901',--网点营业统计报表 '2012-3-7', '2012-3-7', ErrString, RetValue, v_cur) end ;
------解决方案--------------------
存储过程调用方式有几种 在sql窗口直接调用的话 用call
在begin和end中间 可以直接使用 不用加call 因为begin块内本身就相当于一个过程
------解决方案--------------------
sql窗口中:
DECLARE
RetValue NUMBER(4);
ErrString VARCHAR2(100);
v_cur MyPKG_public.Cursor_Ref;
begin
P_SiteBissusSumStat('76901',--网点营业统计报表
'2012-3-7',
'2012-3-7',
ErrString,
RetValue,
v_cur)
;
end ;
你的;后没加上。
在COMMAND 窗口中 先定义输出变量 如:variable o_iSqlcode NUMBER ;
variable o_sSqlMsg VARCHAR2(255) ;
variable o_sAction VARCHAR2(255) ;
variable o_tProcDate VARCHAR2(255) ;
然后再CALL PROC_NAME;
CALL不是在SQL 窗口中调用的e