就着楼主的贴子我想问下: create or replace procedure REPORTVIEWER_count_type_proc (@year int) as begin select distinct a.r_title,b.rdlc_num y_num_e,null m_num_e,null d_num_e,null m_num_s,null y_num_zf,null m_num_zf from REPORTVIEWER a inner join (select sum(rdlc_num) as rdlc_num,rdlc_id,user_id from REPORTVIEWER_count d where to_char(d.create_date,'yyyy')=@year group by rdlc_id,user_id) b on b.rdlc_id=a.sid inner join s_hse_ticket e on e.reghumsid=b.user_id where e.erifystate='完成' end 这样写在Oralce数据中执行exec提示无效SQL语句 请问这是为什么?
out的参数是返回的结果,应该不能改成in吧?
如果在sqlplus下,执行的方法是
SQL> var c varchar2(20);
SQL> exec get_username(324,:c)
SQL> print c;是否在navicat下也需要先定义一个变量才能获得结果呢?
直接复制过去是执行不了的
TMP varchar2(20);
BEGIN
TMP:='a';
get_username(324,TMP);
dbms_output.put_line(TMP);
END ;
解决了
bankcurinterestcalculation(var_maxrecorddate,var_idno,benamount => var_benamount4,interest => var_interest4,balance => var_balance4,curbalance => var_curbalance4,sumamount => var_sumamount4,lastbalance => var_lastbalance4)
create or replace procedure REPORTVIEWER_count_type_proc
(@year int)
as
begin
select distinct a.r_title,b.rdlc_num y_num_e,null m_num_e,null d_num_e,null m_num_s,null y_num_zf,null m_num_zf
from REPORTVIEWER a
inner join
(select sum(rdlc_num) as rdlc_num,rdlc_id,user_id from REPORTVIEWER_count d
where to_char(d.create_date,'yyyy')=@year group by rdlc_id,user_id) b
on b.rdlc_id=a.sid
inner join s_hse_ticket e on e.reghumsid=b.user_id
where e.erifystate='完成'
end
这样写在Oralce数据中执行exec提示无效SQL语句
请问这是为什么?