The code seems perfectly fine. This is the way you insert blob either setBinaryStream or setBytes. I use classes12.zip driver. Just check your code you might be doing some programmatic error.
Regards, Vikramjit Singh, GTL Ltd. Ph. 7612929-1059 > -----Original Message----- > From: Riccardo F. [mailto:[EMAIL PROTECTED]] > Sent: Tuesday, September 03, 2002 9:16 AM > To: [EMAIL PROTECTED] > Subject: Manipulating BLOB within JDBC > > > I'd like to know how is possible to pass a BLOB to a stored > procedure using > CallableStatement, I tried to use method setBinaryInputStream > and setBlob > with the same result, that is: > > java.sql.SQLException: ORA-06550: riga 1, colonna 12: > PLS-00306: numero o tipi di argomenti sbagliati nella > chiamata di 'INSERT_SUPPORTO_BY_ID' > ORA-06550: riga 1, colonna 7: > PL/SQL: Statement ignored > > at > oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:168) > at oracle.jdbc.ttc7.TTIoer.processError(TTIoer.java:208) > at oracle.jdbc.ttc7.Oall7.receive(Oall7.java:543) > at > oracle.jdbc.ttc7.TTC7Protocol.doOall7(TTC7Protocol.java:1405) > at > oracle.jdbc.ttc7.TTC7Protocol.parseExecuteFetch(TTC7Protocol.java:822) > at > oracle.jdbc.driver.OracleStatement.executeNonQuery(OracleState > ment.java:1446) > at > oracle.jdbc.driver.OracleStatement.doExecuteOther(OracleStatem > ent.java:1371) > at > oracle.jdbc.driver.OracleStatement.doExecuteWithTimeout(Oracle > Statement.java:1900) > at > oracle.jdbc.driver.OraclePreparedStatement.executeUpdate(Oracl > ePreparedStatement.java:363) > at > oracle.jdbc.driver.OraclePreparedStatement.execute(OraclePrepa > redStatement.java:407) > at > com.cedac.ibkrouter.connection.ConnectionPoolUtility.executePr > ocedure(ConnectionPoolUtility.java:50) > at > com.cedac.ibkrouter.plugins.bt.xml.TaskDynamicJobXMLImport.bac > kupFlow(Unknown > Source) > at > com.cedac.ibkrouter.plugins.bt.xml.TaskDynamicJobXMLImport.doJ > ob(Unknown > Source) > at com.cedac.ibkrouter.Task.run(Task.java:70) > > seems that the BLOB parameter is not recognized, so type > mismatch occurs. > > CODE: > > byte[] cbiArray=cbiContent.getBytes(); > InputStream is=new ByteArrayInputStream(cbiArray); > > String proc="{ ? = call > parser.insert_supporto_by_id?,?,?,?,?,?,?,?,?) }"; > callableStmt = conn.prepareCall(proc); > callableStmt.registerOutParameter(1, OracleTypes.VARCHAR); > callableStmt.setObject(2, parameters[0]); > callableStmt.setObject(3, parameters[1]); > callableStmt.setObject(4, parameters[2]); > callableStmt.setObject(5, parameters[3]); > callableStmt.setObject(6, parameters[4]); > callableStmt.setObject(7, parameters[5]); > callableStmt.setObject(8, parameters[6]); > callableStmt.setObject(9, parameters[7]); > callableStmt.setBinaryStream(10,is,cbiArray.length); > callableStmt.execute(); > id_supporto = (String) callableStmt.getObject(1); > > Stored procedure signature: > > FUNCTION insert_supporto_by_id (p_id_supporto IN NUMBER, > p_location IN NUMBER, > p_abi_proponente IN VARCHAR2, > p_tipo_mittente IN VARCHAR2, > p_tipo_destinatario IN VARCHAR2, > p_codice_mittente IN VARCHAR2, > p_codice_destinatario IN VARCHAR2, > p_tipo_servizio IN VARCHAR2, > p_flusso IN BLOB) RETURN VARCHAR2; > > > I'm using the thin driver, oracle 8.1.7 > > Thanks in advance for any help! > > Riccardo > > ============================================================== > ============To unsubscribe, send email to > [EMAIL PROTECTED] and include in the body > of the message "signoff EJB-INTEREST". For general help, > send email to > [EMAIL PROTECTED] and include in the body of the message "help". > =========================================================================== To unsubscribe, send email to [EMAIL PROTECTED] and include in the body of the message "signoff EJB-INTEREST". For general help, send email to [EMAIL PROTECTED] and include in the body of the message "help".
