create or replace procedure PICO_VIEW_BY_COLUMN(columnid in integer,begin_sn in varchar(20),end_sn in varchar(20)) is
s1 integer;
bg_sn varchar(20);
ed_sn varchar(20);
begin
s1:=columnid;
bg_sn:=begin_sn;
ed_sn:=end_sn;
if s1=1 then
select * from kp_view_pico where org_id=61 and picoengin between bg_sn and ed_sn;
else if s1=2 then
select * from kp_view_pico where org_id=61 and mailboard between bg_sn and ed_sn;
else s1=3 then
select * from kp_view_pico where org_id=61 and mailboard between bg_sn and ed_sn;
end;

解决方案 »

  1.   

    (columnid in integer,begin_sn in varchar(20),end_sn in varchar(20)) 这里面的(20)要去掉
    if s1=1 then 
    select * from kp_view_pico where org_id=61 and picoengin between bg_sn and ed_sn; ...
    这些在pl/sql里得不到你要的效果,而且会报错
      

  2.   

    if s1=1 then 
    select * from kp_view_pico where org_id=61 and picoengin between bg_sn and ed_sn; ... 
    这些在pl/sql里得不到你要的效果,而且会报错你这样子的存储过程近回是记录集?
      

  3.   

    Oracle存储过程的写法google一下大片大片的,这种东西自己写比别人写好
      

  4.   

    存储过程严重错误请参考下Oracle存储过程的语法