create or replace procedure prc_nc01 (
         prm_year in varchar2,
prm_season in varchar2,
nc010 out varchar2
)   
as begin
select count(1)into nc010 from ae10 a where a.aac009 = '2' 
and a.year = prm_year and a.month in (prm_season);
end prc_nc01;
----------------------------------------------------------------
这个过程中,传入   '04','05','06' 作为prm_season ,得不到结果,是不是oracle把它作为了一个整体的字符串,看待呢,有什么方法可以解决这个in的问题 ?

解决方案 »

  1.   

    create or replace procedure prc_nc01 (
             prm_year in varchar2,
    prm_season in varchar2,
    nc010 out varchar2
    )  
    i_temp integer; 
    as 
    begin
    select count(1)into i_temp from ae10 a where a.aac009 = '2' 
    and a.year = prm_year and a.month in (prm_season);
    nc010:=to_char(i_temp);
    end prc_nc01;
    好象应该这么写吧,
      

  2.   

    '04','05','06'不是用","隔开了吗?
    -----------------------------------
    是隔开了,不过传进去这后,oracle好像把'04','05','06'作为了一个字符串,并不是我想像中的,是三个串。-----------------------------------
    select count(1)into i_temp from ae10 a where a.aac009 = '2' 
    and a.year = prm_year and a.month in (prm_season);
    nc010:=to_char(i_temp);
    -------------------------------------
    这样也一样的