|
|
stored Procedure execution
mons.dbcp.BasicDataSourcequot; destroy-method=quot;closequot; gt; lt;property name=quot;driverClassNamequot; value=quot;oracle.jdbc.driver.OracleDriverquot; /gt; lt;property name=quot;uclquot; value=quot;jdbc racle:thin localhost:1521:XEquot; /gt; lt;property name=quot;usernamequot; value=quot;scottquot; /gt; lt;property name=quot;passwordquot; value=quot;tigerquot; /gt; lt;/beangt;
lt;bean id=quot;subprogquot; class=quot;com.htc.spring25.appls.jdbc.SubprogramsDemo quot;gt; lt;constructor-arg ref=quot;dataSourcequot; /gt; lt;/beangt;
lt;/beansgt;
package com.htc.spring25.appls.jdbc;
import org..dao.DataAccessException;
import org..jdbc.core.SqlParameter;
import org..jdbc.core.SqlOutParameter;
import org..jdbc.object.StoredProcedure;
import org..context.ApplicationContext;
import org..context.support.ClassPathXmlAp plicationContext;
import org.apache.log4j.Logger;
import org.apache.log4j.FileAppender;
import org.apache.log4j.HTMLLayout;
import java.sql.SQLException;
import javax.sql.DataSource;
import static java.sql.Types.*;
import java.util.Map;
import java.util.HashMap;
public class SubprogramsDemo {private OutParamsProcedure proc;public SubprogramsDemo(DataSource ds) { super(); proc = new OutParamsProcedure(ds);} public static class OutParamsProcedure extends StoredProcedure { public static final String PROCNAME = quot;SENDPAYDTLSquot;; public OutParamsProcedure(DataSource ds) { super(ds,PROCNAME); declareParameter(new SqlParameter(quot;ENOquot;,INTEGER)); declareParameter(new SqlOutParameter(quot;SALARYquot;,DOUBLE)); declareParameter(new SqlOutParameter(quot;COMMISSIONquot;,DOUBLE)); compile(); } public void execute(int eno) { Maplt;String,Objectgt; params = new HashMaplt;String,Objectgt;(1); params.put(quot;ENOquot;,new Integer(eno)); System.out.println(quot;.....quot;+eno); Map result = execute(params); System.out.println(quot;Total Salary:quot;+(Double)result.get(quot;SALARYquot;)); System.out.println(quot;Total Commission:quot;+(Double)result.get(quot;COMMISSIONquot;)); } } public void executeProc(int eno){ this.proc.execute(eno); } public static void main(String[] args) { try { Logger logger = Logger.getRootLogger(); logger.addAppender(new FileAppender(new HTMLLayout(), quot;log1.logquot;,true)); ApplicationContext factory = new ClassPathXmlApplicationContext(quot;subprogram.xmlquot;); SubprogramsDemo demo = (SubprogramsDemo)factory.getBean(quot;subprogquot;); demo.executeProc(7654); } catch(Exception e) { System.out.println(e); } }
}
oracle database
OS:Windows Vista
procedure used is
create or replace procedure sendpaydtls(eno in number,salary out number,commission out number) is x number;
begin select count(1) into x from emp where empno=eno; if(x=0) then salary:=0; commission:=0; else select sal*12,nvl(comm,0)*12 into salary,commission from emp where empno=eno; end if;
end;
/
when i run on command line it is showing out-of-memory and generating 2.5GB log1.log file
can anybody help me in debugging this |
|