私は次のような手順を持つアプリケーションを持っています:
procedure get_full_data (list OUT sys_refcursor,id in number,
code in varchar2,type in varchar2) is
year_in number;
begin
year_in := to_number(to_char(to_date(sysdate,'DD-MON-RRRR'),'RRRR')); // line 628
open list for
select * from my_tab
where code_present = code AND to_number(substr(year,1,4)) in (year_in,year_in-1,year_in-2)
and minth in(select max(month) from my_tab where code_present = code
and to_number(substr(year,1,4)) in (year_in,year_in-1,year_in-2)
group by substr(year,1,9))
order by to_number(substr(year,1,4)) desc;
END get_full_data;
そして、このプロシージャを呼び出す Java コードは次のとおりです (hibernate
ここで使用しています)。
List<MyBean> salesApproval=session.getNamedQuery("get_data").setInteger("id",my_id).setString("code",my_code).setString("type",my_type).list();
MyBean
プロシージャによって返されるデータを保持するクラスです。
問題:
システムで
アプリケーションをホストするwindows
と、目的の結果で正常に動作します。
ただし、でアプリケーションをホストするとLinux Ubuntu 12.04
、次のエラーが発生します。
java.sql.SQLException: ORA-01843: not a valid month
ORA-06512: at "db.proc_pack", line 628
行番号 628 は手順に記載されています。