We can use callableStatement object to call a stored procedure. To use the callableStatement we need to know
the name of the procedure and input/output parameters. Some procedures may not take any parameter.
Procedure for executing the stored procedure which takes parameters.
Procedure for executing the stored procedure which takes parameters.
- Create a procedure which takes in parameters and gives an output. Below is the procedure:
PROCEDURE procx(one IN number, two in number, three out number) as begin three := one * two; end procx;
- To call the above procedure Procx, create a CallableStatement as shown in the below program.
callStmt = conn.prepareCall("{call procx(?,?,?)}");
As there are 3 parameters we need to use 3 question marks (?). - Identify the input parameters and set the values of the parameters. In this example the first
2 parameters are inputs.
// set input parameters callStmt.setInt(1,10); callStmt.setInt(2, 20);
- Identify the output parameter and register the data type of the output parameter. In this
example the third parameter is for output.
//register output types callStmt.registerOutParameter(3, Types.INTEGER);
- Execute the statement.
package com.ram.app; import java.sql.CallableStatement; import java.sql.Connection; import java.sql.DriverManager; import java.sql.Types; public class CallableStatmentExample { public static void main(String[] args) throws Exception{ Connection conn; CallableStatement callStmt; Class.forName("oracle.jdbc.driver.OracleDriver"); conn = DriverManager.getConnection("jdbc:oracle:thin:@localhost:1521:xe","hr","hr"); callStmt = conn.prepareCall("{call procx(?,?,?)}"); // set input parameters callStmt.setInt(1,10); callStmt.setInt(2, 20); //register output types callStmt.registerOutParameter(3, Types.INTEGER); callStmt.execute(); System.out.println("Output = "+callStmt.getInt(3)); } }
No comments:
Post a Comment