带有入参和出参的存储过程的调用

小沈阳 2011-09-26 01:23:22
CREATE OR REPLACE PROCEDURE WEBHALL_OWNER_USER.WB_mobile_active_cust_number
(
in_start_date IN varchar2, --开始时间
in_end_date IN varchar2, --结束时间
in_report_item in varchar2, -- 统计标示
o_report_value out varchar2, --统计项值
oi_errorFlag OUT number, --1正常 0异常
os_message OUT varchar2 --error Message
)
IS
-- 获得参数 event
vi_value number :=0;
vs_error_message varchar(300);
vi_is_error number:=0; --1正常 0异常
begin

-- 执行SQL
select count(distinct(f_service_id))
into vi_value
from wb_cust_contact_t
where f_contact_result = 1
and f_event = '14'
and f_service_kind = '8'
and f_stat_time>=TO_DATE (in_start_date, 'yyyy-mm-dd hh24:mi:ss')
and f_stat_time<=TO_DATE (in_end_date, 'yyyy-mm-dd hh24:mi:ss');

o_report_value := to_char(vi_value);
oi_errorFlag:=1;

exception
when others then
oi_errorFlag:=0;
os_message := SUBSTR(SQLERRM,1,200);

END WB_mobile_active_cust_number;
/
好久没有用存储过程了,这个存储过程怎么调用啊?我想看看输出参数是什么。
...全文
483 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
灰哥 2011-09-27
  • 打赏
  • 举报
回复
declare
varOUta varchar2(100);
varOutb varchar2(100);
varOutc varchar2(100);
begin
WEBHALL_OWNER_USER.WB_mobile_active_cust_number(输入参数1,
输入参数2,
输入参数3,
varOUta,
varOutb,
varOutc);
dbms_output.put_line(varOUta || '----' || varOutb || '----' || varOutc);
end;
yixilan 2011-09-26
  • 打赏
  • 举报
回复
exec
WB_mobile_active_cust_number
(给参数列表传值);

如果想看输出参数的值,需要在exception
前面加上:
dbms_output.put_line('o_report_value:'||o_report_value);
dbms_output.put_line('oi_errorFlag:'||oi_errorFlag);
...

在存储过程调用前,加上set serveroutput on; --确保能输出打印信息

17,377

社区成员

发帖
与我相关
我的任务
社区描述
Oracle 基础和管理
社区管理员
  • 基础和管理社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧