title: Oracle Store Procedure with BLOB parameter
body: <p>Hi i'm new working with this technologies (Oracle SP ), so I have some problems with it,</p>
  
  <p>To be specific I want to insert a BLOB object over a Store Procedure, currently I work with spring, jboss, java and oracle, my SP is simple than :</p>
  
  <pre><code>PROCEDURE SAVE_DATA(data IN BLOB, date IN DATE) IS
  next_id number;
  BEGIN
    select s_id.nextval into next_id from dual;
  
    INSERT INTO DATA_TABLE( id, data , date)
    values
    (next_id, data , date);
    COMMIT;
  
    EXCEPTION
     WHEN OTHERS THEN
       RAISE_APPLICATION_ERROR(-20101,''||SQLCODE ||'-'||SUBSTR(SQLERRM,1,500));
    END SAVE_FAILED_EMAIL;
  </code></pre>
  
  <p>So in the java side, I do something like this:</p>
  
  <pre><code>  WrappedConnection wrappedCon = (WrappedConnection) this.getDataSource().getConnection();
          con = (OracleConnection) wrappedCon.getUnderlyingConnection();
          byte[] bytes= IOUtils.toByteArray(input);
          blobObj=con.createBlob(bytes);
  
    execute(new CallableStatementCreator() {
  
          public CallableStatement createCallableStatement(Connection con)
                  throws SQLException {
               String procedure = "call SAVE_DATA(?,?)";
  
                  CallableStatement stm=con.prepareCall(procedure);
  
                  stm.setBlob(1, blobObj);
                  stm.setDate(2, date);
              return stm;
          }
      }, new CallableStatementCallback&lt;Map&lt;Integer,Object&gt;&gt;() {
  
          public Map&lt;Integer, Object&gt; doInCallableStatement(CallableStatement cs) 
          throws SQLException,DataAccessException {
              cs.execute();
              return null;
          }} 
      );
      con.commit();
      con.close();
  </code></pre>
  
  <p>But when I run this part of the code I get the next exception that comes form DB side 
  "ORA-22927 invalid LOB locator specified"</p>