我是个菜鸟,对oracle不甚熟悉,现在请教一个问题,怎样图片(大字段、大对象)数据写入oracle中,图片的格式有两种:jpg、bmp。图片数量较大,上万张。请问用何种方式存贮比较省时省力?望高手不吝赐教。
解决方案 »
- oracle 输出每个分组的第一行
- 怎么计算oracle共享内存的使用百分比?
- 求sql优化问题急……
- 请帮忙希望可以有人能解决我的问题
- 简单的sql语句帮忙看看
- 请教,oracle中关于case表达式的问题
- 请教一个sql的写法
- 我就不信没有解决方法???????
- 请问在java存储过程中如何访问数据库,我用常规方法连接调用,单独可以执行,但在oracle中总提示java.sql.SQLException: No suitable dri
- 关于Oracle数据库设计
- (100分)对于记录量比较大的分页显示,如果为了提高分页效率,可以在数据库(oracle)中写存储过程来解决分页,如何写??(急等)
- 急!!!在导入DMP文件后,MENU COMPONET中要用到的PROCEDURE是否也导入了!在线等待
CREATE TABLE PHOTO
(
PICTUREID NUMBER ,
PICTURE BLOB DEFAULT EMPTY_BLOB()
); Then use SQL*LOADER to insert data.
这个讨论也许对你有所帮助
http://expert.csdn.net/Expert/topic/1576/1576763.xml?temp=.8561365
给我发email,我把代码发给你
[email protected]
FileInputStream fis = new FileInputStream(file);
PreparedStatement ps =
conn.prepareStatement("insert into images values (?,?)");
ps.setString(1,file.getName());
ps.setBinaryStream(2,fis,file.length());
ps.executeUpdate();
ps.close();
fis.close();
...
<img src=showimage.jsp?ID=1234>
...
=======================showimage.jsp=================
<%@ page language="java" import="java.sql.*,java.util.*"%>
<%
String image_id = (String) request.getParameter("ID");
if (image_id != null){
try
{
Class.forName("oracle.jdbc.driver.OracleDriver");
Connection con = DriverManager.getConnection("jdbc:oracle:thin:scott/[email protected]:1243:myInstance","java","java");
Statement stmt = con.createStatement();
ResultSet rs = stmt.executeQuery("SELECT * FROM IMMAGINE WHERE IMMAGINE_ID = " + image_id);
if (rs.next())
{
String dim_image = rs.getString("IMMAGINE_DIMENSIONE");
byte [] blocco = rs.getBytes("IMMAGINE_IMMAGINE");
response.setContentType("image/jpeg");
ServletOutputStream op = response.getOutputStream();
for(int i=0;i<Integer.parseInt(dim_image);i++)
{
op.write(blocco[i]);
}
}
rs.close();
stmt.close();
con.close();
} catch(Exception e) {
out.println("An error occurs : " + e.toString());
}
}
%>///********************补充:如何保存图片到数据库java.sql.Connection lConn = null;
java.sql.Statement lStat = null;
java.sql.ResultSet lRs = null;
try
{
DBConnectionManager lDB = DBConnectionManager.getInstance();
lConn = lDB.getConnection("ORACLE");
lStat = lConn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
lStat.executeUpdate("insert id,EMPTY_BLOB() from tab where id=2");
lRs = lStat.executeQuery("select pic from tab where id=2");
if(lRs.next())
{
oracle.sql.BLOB blob = (oracle.sql.BLOB)lRs.getBlob("pic");
OutputStream outstream = blob.getBinaryOutputStream();
byte[] bAtt = "data".getBytes();
outstream.write(bAtt,0,bAtt.length);
outstream.close();
lRs.updateBlob("pic",blob);
}
}
catch(Exception e)
{
e.printStackTrace();
}
finally
{
try{lRs.close();}catch(Exception e){}
try{lStat.close();}catch(Exception e){}
try{lConn.close();}catch(Exception e){}
}
//*****************************************