存储过程前面部分:
create or replace procedure sp_usr_rec_det(vi_date in varchar2,
vo_result_msg out varchar2,
oc_result out sys_refcursor) is
后面的功能就不贴上来了。主要是给大家看看传入参数和输出参数。输出的是一个游标。返回想要查询的字段数据。
现在需要在命令窗口执行这个存储过程,比如:execute sp_usr_rec_det('20110627').但是不行啊。报错。传入参数错误
,这个要怎么传呀!!!!
create or replace procedure sp_usr_rec_det(vi_date in varchar2,
vo_result_msg out varchar2,
oc_result out sys_refcursor) is
后面的功能就不贴上来了。主要是给大家看看传入参数和输出参数。输出的是一个游标。返回想要查询的字段数据。
现在需要在命令窗口执行这个存储过程,比如:execute sp_usr_rec_det('20110627').但是不行啊。报错。传入参数错误
,这个要怎么传呀!!!!
解决方案 »
- ASM无法删除磁盘组
- EXPDP远程数据库表出错
- 大家介绍一些visualc++进行oracle数据库编程的学习资料
- 如何保证 insert 唯一?
- 一个关于job的问题
- 这一段时间没来了,发现突然长了三个星星,:) 祝大家元旦快乐!
- 请教SQL语句...
- oracle存储过程和任务计划的问题!!!立刻给分!!!
- 为什么我的服务里面没有OracleOraHome81ManagermentServer服务?
- SOS------------------------------------sp_tables-------------------------------------------------SOS
- 请问查询这样的SQL语句怎么写?
- 表或视图不存在
var vo_result_msg varchar2(20);
var oc_result sys_refcursor;
execute('20110627',:vo_result_msg ,:oc_result );
其实我是用工具去调用这个存储过程的。但工具生成的sql语句只有Execute procedure SP_USR_REC_DET('20110627');没有定义那么多参数
--你可以传入null,但是你不能不定义啊
--不管你是用object browser 还是sqlplus dev执行,肯定都是需要传入参数的
--sample
create or replace procedure test(
vi_date in varchar2,
vo_result_msg out varchar2,
...
)
is
begin
DBMS_OUTPUT.PUT_LINE('SUCCESS');
END;----------------------------
--执行(pl/sql dev)
begin
--call the procedure
test(vi_date=>:vi_date, vo_result_msg=>:vo_result_msg,...);
end;vi_date String '20110913'
vo_result_msg String -------------执行结果
success