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".

Reply via email to