CREATE OR REPLACE FUNCTION UF_GETFUNCTIONNAME1 ( i_FunctionID IN CHAR,--功能代码 o_Functionname OUT VARCHAR2, --功能路径 o_code OUT NUMBER, o_result OUT VARCHAR2 ) RETURN NUMBER IS
JAVA调用如下:
/* * JAVA调用ORACLE书写的function函数样例 * */ public List tesFunction() throws NamingException{ //定义被调用的函数名称 String functionName="UF_GetSunday1"; //定义输入参数的值 Object[] inParams={"20090505","yyyymmdd"}; //定义输出参数的类型 int[] outTypes={OracleTypes.NUMBER,OracleTypes.VARCHAR}; //定义返回值的类型 int ReturnType=OracleTypes.CHAR; SpMessage sm= ExecuteSP.executeFun(functionName, inParams, outTypes, ReturnType); /* * *****或者使用以下调用也可************** * //用一个SpCondition 类包装输入,输出参数 SpCondition spcd=new SpCondition(); //将被调用的函数名称注入到SpCondition对象中 spcd.setSpName(functionName); //将输入参数的值注入到SpCondition对象中 spcd.setInObject(inParams); //将返回值类型注入到SpCondition对象中 spcd.setFunctionReturnTypeOne(ReturnType); //将输出参数的类型注入到SpCondition对象中 spcd.setOutType(outTypes); //执行函数 SpMessage sm= ExecuteSP.executeFun(spcd); */ return sm.getOtherResults(); }
---- 查询业务管理-会员出入金申请 PROCEDURE up_QryPartDWApply ( i_OperatorID IN CHAR, ---- 操作员代码 i_ParticipantID IN CHAR, ---- i_BankID IN CHAR, ---- i_CertNo IN CHAR, ---- i_BankAccPropID IN CHAR, ---- i_Status IN CHAR, ---- i_DWDirection IN CHAR, ---- i_BeginAmt IN NUMBER, ---- i_EndAmt IN NUMBER, ---- i_BeginDate IN CHAR, ---- i_EndDate IN CHAR, ---- o_ReturnNo OUT NUMBER, ---- 返回码 o_ReturnMsg OUT CHAR, ---- 返回信息 o_cursor OUT Types.cursorType ---- 返回游标类型 ) AS
JAVA调用如下:(以上SQL为有顺序的--先输入参数然后为输出参数)
/* * JAVA调用ORACLE书写的Procedure样例1 * */ public List testProcedure1() throws NamingException{ //定义被调用的函数名称 String functionName="pkg_BusinessManage.up_QryDeliberyApply"; //定义输入参数的值 Object[] inParams={"auto","0049","cu","199902","0","20080729","20080730","1"}; //定义输出参数的类型 int[] outTypes={OracleTypes.NUMBER,OracleTypes.VARCHAR,OracleTypes.CURSOR}; SpMessage sm= ExecuteSP.executeSP(functionName, inParams, outTypes); /* * 通过以下方法可获取返回游标的值 * ResultSet rs=null; rs=(ResultSet)sm.getOtherResults().get(2);*/ return sm.getOtherResults(); }
---- 查询业务管理-会员出入金申请 PROCEDURE up_QryPartDWApply ( o_ReturnNo OUT NUMBER, ---- 返回码 o_ReturnMsg OUT CHAR, ---- 返回信息 i_OperatorID IN CHAR, ---- 操作员代码 i_ParticipantID IN CHAR, ---- i_BankID IN CHAR, ---- i_CertNo IN CHAR, ---- i_BankAccPropID IN CHAR, ---- i_Status IN CHAR, ---- i_DWDirection IN CHAR, ---- i_BeginAmt IN NUMBER, ---- i_EndAmt IN NUMBER, ---- i_BeginDate IN CHAR, ---- i_EndDate IN CHAR, ---- o_cursor OUT Types.cursorType ---- 返回游标类型 ) AS
JAVA调用如下:(以上SQL为无顺序的--也就是说输入参数与输出参数无顺序出现)
/* * JAVA调用ORACLE书写的Procedure样例2 * */ public List testProcedure2() throws NamingException{ //定义输入参数的值 Object[] inParams={"auto","0049","cu","199902","0","20080729","20080730","1"}; //定义输出参数的类型 int[] outTypes={OracleTypes.NUMBER,OracleTypes.VARCHAR,OracleTypes.CURSOR}; //定义输出参数的索引位置 int[] outSort={1,2,11}; //用一个SpCondition 类包装输入,输出参数 SpCondition spcd=new SpCondition(); //将被调用的函数名称注入到SpCondition对象中 spcd.setSpName("pkg_BusinessManage.up_QryDeliberyApply"); //将输入参数的值注入到SpCondition对象中 spcd.setInObject(inParams); //将第一个输入参数的索引注入到SpCondition对象中 spcd.setInIndexStart(3); //将输出参数的索引注入到SpCondition对象中 spcd.setOutIndex(outSort); //将输出参数的类型注入到SpCondition对象中 spcd.setOutType(outTypes); //执行函数 SpMessage sm= ExecuteSP.executePro(spcd); /* * 通过以下方法可获取返回游标的值 * ResultSet rs=null; rs=(ResultSet)sm.getOtherResults().get(2);*/ return sm.getOtherResults(); }