Class Procedure

java.lang.Object
com.ziclix.python.sql.Procedure

public class Procedure extends Object
This class provides the necessary functionality to call stored procedures. It handles managing the database metadata and binding the appropriate parameters.
Author:
brian zimmer
  • Constructor Details

    • Procedure

      public Procedure(PyCursor cursor, PyObject name) throws SQLException
      Constructor Procedure
      Parameters:
      cursor - cursor an open cursor
      name - name a string or tuple representing the name
      Throws:
      SQLException
  • Method Details

    • prepareCall

      public CallableStatement prepareCall() throws SQLException
      Prepares the statement and registers the OUT/INOUT parameters (if any).
      Returns:
      CallableStatement
      Throws:
      SQLException
    • prepareCall

      public CallableStatement prepareCall(PyObject rsType, PyObject rsConcur) throws SQLException
      Prepares the statement and registers the OUT/INOUT parameters (if any).
      Parameters:
      rsType - the value of to be created ResultSet type
      rsConcur - the value of the to be created ResultSet concurrency
      Returns:
      CallableStatement
      Throws:
      SQLException
    • normalizeInput

      public void normalizeInput(PyObject params, PyObject bindings) throws SQLException
      Prepare the binding dictionary with the correct datatypes.
      Parameters:
      params - a non-None list of params
      bindings - a dictionary of bindings
      Throws:
      SQLException
    • isInput

      public boolean isInput(int index) throws SQLException
      This method determines whether the param at the specified index is an IN or INOUT param for a stored procedure. This is only configured properly AFTER a call to normalizeInput().
      Parameters:
      index - JDBC indexed column index (1, 2, ...)
      Returns:
      true if the column is an input, false otherwise
      Throws:
      SQLException
    • toSql

      public String toSql() throws SQLException
      Returns the call in the syntax:
       {? = call <procedure-name>(?, ?, ...)}
       {call <procedure-name>(?, ?, ...)}
       
      As of now, all parameters variables are created and no support for named variable calling is supported.
      Returns:
      String
      Throws:
      SQLException