Enregistrer un fichier dans un blob oracle

Contenu du snippet

/**
     * Set a blob into a OraclePreparedStatement.
     * @param st The statement instanceof OraclePreparedStatement
     * @param content The blob content
     * @param index The index of the blob in the sql expression.
     * @throws SQLException If an error occurs while setting blob.
     */
    public static void prepareStatementOracleBlob(PreparedStatement st, byte[] content, int index) throws SQLException{
        if (content == null) {
            st.setNull(index, Types.BINARY);
        } else if (st instanceof oracle.jdbc.OraclePreparedStatement) {
            oracle.jdbc.OraclePreparedStatement ost = (oracle.jdbc.OraclePreparedStatement) st;
            oracle.sql.BLOB blob = oracle.sql.BLOB.createTemporary(st
                    .getConnection(), false, oracle.sql.BLOB.DURATION_SESSION);
            blob.open(oracle.sql.BLOB.MODE_READWRITE);
            OutputStream out = blob.getBinaryOutputStream();
            try {
                out.write((byte[]) content);
                out.flush();
                out.close();
            } catch (IOException e) {
                throw new SQLException("Failed write to blob " + e.getMessage());
            }
            blob.close();
            
            ost.setBLOB(
                    index,
                    blob);
            
        } else
            throw new InvalidParameterException("The prepared statement is not an instance of oracle.jdbc.OraclePreparedStatement, it is a " + st.getClass());
    }

Compatibilité : Java

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.