第一种Python如果你是用类似sqlalchemy这样的orm数据库 def upload_blob(file_data): fb = StringIO.StringIO() file_data.save(fb) filename = file_data.filename c_blob_id = None if filename: blob = T_Blob() blob.c_filename = filename blob.c_blob = fb.getvalue() db.session.add(blob) db.session.flush() c_blob_id = blob.id return c_blob_id 调用 form = AddFileForm() if form.validate_on_submit(): user = g.user c_blob_id = models.upload_blob(form.c_fj.data) 第二种 java jdbc方式插入Oracle import java.sql.*; import java.io.*; import oracle.sql.*; public class IntoOracle { public static void main(String[] args) { try { DriverManager.registerDriver(new oracle.jdbc.driver.OracleDriver()); Connection conn = OracleFactory.getOracle(); conn.setAutoCommit(false); BLOB blob = null; PreparedStatement pstmt = conn.prepareStatement("insert into blobtest(id,b) values(?,empty_blob())"); pstmt.setString(1,"50"); pstmt.executeUpdate(); pstmt.close(); pstmt = conn.prepareStatement("select b from blobtest where id= ? for update"); pstmt.setString(1,"50"); ResultSet rset = pstmt.executeQuery(); if (rset.next()) blob = (BLOB) rset.getBlob(1); String fileName = "d:\\bjx.jpg"; File f = new File(fileName); FileInputStream fin = new FileInputStream(f); System.out.println("file size = " + fin.available()); pstmt = conn.prepareStatement("update blobtest set b=? where id=?"); OutputStream ut = blob.getBinaryOutputStream(); int count = -1, total = 0; byte[] data = new byte[(int)fin.available()]; fin.read(data); out.write(data); fin.close(); out.close(); pstmt.setBlob(1,blob); pstmt.setString(2,"50"); pstmt.executeUpdate(); pstmt.close(); conn.commit(); conn.close(); } catch (SQLException e) { System.err.println(e.getMessage()); e.printStackTrace(); } catch (IOException e) { System.err.println(e.getMessage()); } catch (Exception e){ e.printStackTrace(); } } } 以上
第一种
Python
如果你是用类似sqlalchemy这样的orm数据库
第二种 java jdbc方式插入Oracle