天涯尽头无女友
调用数据库里的一个函数一个函数本质上一个返回一个结果的存储过程,这个例子示范了怎么调用有in、out和in/out参数的函数***********************************/CallableStatement cs;try {// 调用一个没有参数的函数; 函数返回 a VARCHAR// 预处理callable语句cs = connection.prepareCall("{? = call myfunc}");// 注册返回值类型cs.registerOutParameter(1, i);// Execute and retrieve the returned valuecs.execute();String retValue = cs.getString(1);// 调用有一个in参数的函数; the function returns a VARCHARcs = connection.prepareCall("{? = call myfuncin(?)}");// Register the type of the return valuecs.registerOutParameter(1, Types.VARCHAR);// Set the value for the IN parametercs.setString(2, "a string");// Execute and retrieve the returned valuecs.execute();retValue = cs.getString(1);// 调用有一个out参数的函数; the function returns a VARCHARcs = connection.prepareCall("{? = call myfuncout(?)}");// Register the types of the return value and OUT parametercs.registerOutParameter(1, Types.VARCHAR);cs.registerOutParameter(2, Types.VARCHAR);// Execute and retrieve the returned valuescs.execute();retValue = cs.getString(1); // return valueString outParam = cs.getString(2); // OUT parameter// 调用有一个in/out参数的函数; the function returns a VARCHARcs = connection.prepareCall("{? = call myfuncinout(?)}");// Register the types of the return value and OUT parametercs.registerOutParameter(1, Types.VARCHAR);cs.registerOutParameter(2, Types.VARCHAR);// Set the value for the IN/OUT parametercs.setString(2, "a string");// Execute and retrieve the returned valuescs.execute();retValue = cs.getString(1); // return valueoutParam = cs.getString(2); // IN/OUT parameter} catch (SQLException e) {}