package callProcedure;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Types;
import oracle.jdbc.OracleTypes;
// 调用存储过程
public class CallProcedure {
public static Connection con = null;
// 调用存储过程,函数特有的封装类
public static CallableStatement callableStatement = null;
public static ResultSet rs = null;
public static void main(String args[]) throws SQLException {
System.out.println(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>调用存储过程<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
// 调用无返回值的存储过程
callNoReturnValueProcedure();
// 调用带参数的存储过程
callParamProcedure();
// 调用只有一个返回值的存储过程
callOnlyOneReturnValueProcedure();
// 调用有一组返回值的存储过程
callReturnValuesProcedure();
System.out.println(">>>>>>>>>>>>>>>>>><<>>>>>>>>>>>调用函数<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<");
// 调用有一个返回值的函数
callReturnValueFunction();
}
*******调用无返回值的存储过程*******/
public static void callNoReturnValueProcedure() throws SQLException {
try {
con = getConnection();
callableStatement = con.prepareCall("{call noReturnValueProcedure}");
callableStatement.execute();
} catch (SQLException sqlException) {
sqlException.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
} finally {
close();
}
System.out.println("callNoReturnValueProcedure()无返回值存储过程执行成功!");
}
/*
上面callNoReturnValueProcedure()调用的存储过程如下:
create or replace procedure noReturnValueProcedure is -- 如果存储过程没有参数则不带括号,如果写成testProcedure()则报错
b