今天不算是分享吧,算是个积累,毕竟小编记性不好cc97870d451f03e42be45163688eaffd.png

话不多说,直接上例子了

c#调用存储过程:

public DELBPMEntityList SelectListByUserOidAndState(DELBPMEntityList PaticiOids,string ProcessInsState,bool isMonitor)    {      //创建返回对象列表      DELBPMEntityList TheReturnObjectList = new DELBPMEntityList();      if(PaticiOids.Count < 1)        return TheReturnObjectList;            //创建数据库连接命令            mySelectCommand = new OracleCommand();            mySelectCommand.Connection = myConnection;            mySelectCommand.CommandType = CommandType.StoredProcedure;            mySelectCommand.CommandText = "PLM_BPM.GetProcessListByUserAndState";            //设置查询参数            mySelectCommand.Parameters.Add("UserId", OracleDbType.Raw).Value = ((Guid)PaticiOids[0]).ToByteArray();            mySelectCommand.Parameters.Add("ProcessInsState", OracleDbType.Varchar2).Value = ProcessInsState;            mySelectCommand.Parameters.Add("isMonitor", OracleDbType.Char).Value = isMonitor ? 'Y' : 'N';            //设置返回参数            OracleParameter RetProcessList = new OracleParameter("RetProcessList", OracleDbType.RefCursor);            RetProcessList.Direction = ParameterDirection.Output;            mySelectCommand.Parameters.Add(RetProcessList);            mySelectCommand.Prepare();            mySelectCommand.ExecuteNonQuery();            //从游标读取当前活动列表            OracleRefCursor processListRef = (OracleRefCursor)RetProcessList.Value;            OracleDataReader drProcessList = processListRef.GetDataReader();            TheReturnObjectList = ReadProcessList(drProcessList);                  return TheReturnObjectList;    }        //组织回来的数据    private DELBPMEntityList ReadProcessList(OracleDataReader myDataReader)        {            //创建返回对象列表            DELBPMEntityList TheReturnObjectList = new DELBPMEntityList();            try            {                while (myDataReader.Read())                {                    DELProcessInsProperty TheReturnObject = new DELProcessInsProperty();                    if (!myDataReader.IsDBNull(0)) TheReturnObject.ID = new Guid((byte[])myDataReader.GetValue(0));                    if (!myDataReader.IsDBNull(1)) TheReturnObject.Name = myDataReader.GetString(1);                    if (!myDataReader.IsDBNull(2)) TheReturnObject.CLSID = (int)myDataReader.GetDecimal(2);                    if (!myDataReader.IsDBNull(3)) TheReturnObject.Description = myDataReader.GetString(3);                    if (!myDataReader.IsDBNull(4)) TheReturnObject.ProcessDefinitionID = new Guid((byte[])myDataReader.GetValue(4));                                 if (!myDataReader.IsDBNull(5)) TheReturnObject.Terminatio8nDate = myDataReader.GetDateTime(5);                    if (!myDataReader.IsDBNull(6)) TheReturnObject.IsObjectActived = myDataReader.GetString(6) == "Y" ? true : false;                    if (!myDataReader.IsDBNull(7)) TheReturnObject.OprType = myDataReader.GetString(7);                    if (!myDataReader.IsDBNull(8)) TheReturnObject.OptionalStr1 = myDataReader.GetString(8);                    TheReturnObjectList.Add(TheReturnObject);                }            }            finally            {                if (myDataReader != null && !myDataReader.IsClosed)                    myDataReader.Close();            }            return TheReturnObjectList;        }

java调用存储过程:

public String getProcedureFB(String start,String end,String user) throws SQLException, ParseException {   Connection conn = SqlHelper.getConnection();   CallableStatement cs=null;   cs=conn.prepareCall("{call dt_xmgl_rwfb(?,?,?)}");   SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd");//注意月份是MM      Date date1=simpleDateFormat.parse(start);   Date date2=simpleDateFormat.parse(end);   cs.setTimestamp(1,new java.sql.Timestamp(date1.getTime()));   cs.setTimestamp(2,new java.sql.Timestamp(date2.getTime()));   cs.registerOutParameter(3, OracleTypes.CURSOR);   cs.execute();   //接受返回游标结果   ResultSet rs = (ResultSet)cs.getObject(3);   String ret="";   while(rs.next()){      String first=rs.getString(1);      String second=rs.getString(2);      ret+=first+":"+second+"-";   }   if(ret.length()>1){      ret=ret.substring(0,ret.length()-1);   }else{      ret="";   }   return ret;}
Logo

DAMO开发者矩阵,由阿里巴巴达摩院和中国互联网协会联合发起,致力于探讨最前沿的技术趋势与应用成果,搭建高质量的交流与分享平台,推动技术创新与产业应用链接,围绕“人工智能与新型计算”构建开放共享的开发者生态。

更多推荐