`

ORACLE如何使用BLOB,LONG RAW类型存储图片

阅读更多
以下代码可以向数据库插入二进制形式的图片、文件、视频等。
Java代码
package test;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.SQLException;

public class OracleImageTest {
	/*
	 * create table IMAGETABLE ( IMAGE_BLOB BLOB, IMAGE_LONG_RAW LONG RAW )
	 */

	public static void main(String[] args) {
		Connection connection = null;
		try {
			String sql = "insert into imagetable (image_blob )values (?  )";
			connection = getORACLEConn();

			File f = new File("c://myimage.png");
			FileInputStream fis = new FileInputStream(f);

			PreparedStatement ps = connection.prepareStatement(sql);
			ps.setBinaryStream(1, fis, f.length());
			ps.execute();

			fis = new FileInputStream(f);
			sql = "insert into imagetable (image_long_raw )values (? )";
			ps = connection.prepareStatement(sql);
			ps.setBinaryStream(1, fis, f.length());
			ps.execute();

		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (SQLException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} finally {

			try {
				connection.close();
			} catch (SQLException e) {
				// TODO Auto-generated catch block
				e.printStackTrace();
			}
		}
	}

	public static Connection getORACLEConn() throws ClassNotFoundException,
			SQLException {
		Connection connection;
		Class.forName("oracle.jdbc.driver.OracleDriver");
		connection = DriverManager.getConnection(
				"jdbc:oracle:thin:@192.168.65.247:1521:ce4702", "qsh91",
				"qsh91");
		return connection;
	}
}
 通过PL/SQL就可以看到插入的图片,或者通过相反的JDBC过程就可以查询出图片。


分享到:
评论

相关推荐

    oracle LongRaw 转 Blob

    在Oracle数据库中,LongRaw和Blob都是用于存储大对象(LOB)的数据类型,但它们有各自的特点和适用场景。在某些情况下,可能需要将LongRaw字段转换为Blob字段,这通常是因为Blob提供更好的管理和处理大型二进制数据...

    oracle LongRaw 转 Blob 源码

    LongRaw类型是Oracle的原始数据类型,用于存储二进制大对象,而Blob类型则是二进制大型对象,更适合存储大量的二进制数据,如图片、文档等。在某些情况下,由于LongRaw不支持某些高级LOB操作,如索引和部分更新,...

    ODI BLOB到Long Raw集成方法

    - **选择LKM**:使用LKM SQL to SQL BTL(Jython),这个Knowledge Module(KM)能将源数据中的BLOB值同步到目标LONGRAW。 - **选择IKM**:选择IKM SQL NULL,可能用于处理空值或无映射的字段。 - **接口实现**:...

    图片存入Oracle中,用clob和blob两种方式

    它可以直接存储原始的二进制数据,无需进行任何编码转换,因此对于图片存储来说,`BLOB`通常是更直接且高效的方式。 3. **图片存入Oracle的步骤**: - **准备环境**:首先确保已经安装了Oracle数据库客户端和相应...

    杜均--ODI BLOB到Long Raw集成方法

    在数据库领域,随着技术的发展,Oracle不断优化其数据存储能力,引入了CLOB(Character Large Object)和BLOB(Binary Large Object)等数据类型,以取代早期版本中使用的Longraw类型。Longraw类型主要应用于Oracle ...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob).pdf

    在Oracle数据库中,有多种数据类型用于存储不同类型的数据,其中包括Long、Raw和Blob。这些字段类型各有其特性和用途,下面我们将详细探讨它们,并通过一个简单的示例来展示如何在Oracle数据库中对这些类型进行读写...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob) (2).pdf

    在Oracle数据库中,有多种数据类型用于存储不同类型的数据,其中包括Long、Raw和Blob。这些字段类型各有其特性和用途。 1. Long类型:Long数据类型用于存储大文本数据,如用户简历(EMP_DESCLONG)。它能存储的最大...

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob) (2).docx

    总之,理解并正确使用ORACLE数据库中的VARCHAR2、LONG、RAW和BLOB数据类型对于高效地存储和管理各种类型的数据至关重要。在实际开发中,应根据具体需求选择合适的数据类型,并确保正确处理数据的读写操作。

    ORACLE数据库中主要字段类型的读写例子(包括:Long、Raw、Blob).docx

    理解并正确使用各种字段类型,如Long、Raw和Blob,可以帮助你构建更高效、更灵活的数据存储解决方案。同时,考虑到安全性和性能,应避免使用LONG类型,转而使用CLOB或BLOB,并根据需要使用合适的数据存储策略。

    load blob clob

    "AnySQL_net » Blog Archive » 如何将BLOB的内容转到LONG RAW中.html"这篇文章可能会探讨如何在Oracle中将Blob数据转换为LONG RAW类型,LONG RAW是Oracle另一种存储大对象的方式,但只适用于二进制数据。...

    使用JDBC存取ORACLE数据库中的图片数据.pdf

    Oracle数据库是一个流行的关系型数据库系统,它提供了LONG RAW和BLOB类型来存储非结构化的数据,如图片。 在Oracle中,LONG RAW类型用于存储原始二进制数据,而BLOB(Binary Large Object)用于存储可变长度的二...

    oracle海量图像数据的存储

    - **BLOB (Binary Large Object)**:与Oracle 7中的`LONGRAW`类型类似,用于存储无结构的二进制数据。BLOB数据在存储时不进行任何解码,保持原始形式。 - **BFILE (Binary File)**:提供对存储在Oracle数据库之外的...

    Oracle与DB2数据类型分类对应说明

    例如,在 DB2/400 中,我们可以使用定长的 CHAR(N)类型与 Oracle 的 VARCHAR2(n)相对应,这样可以提高效率和节省存储空间。 四、LOB 类型 DB2/400 提供 VARCHAR 和 CLOB 与 Oracle 中的 RAW 和 LONG RAW 相...

    Struts2 Hibernate存取Oracle数据库中的BLOB数据.pdf

    ### Struts2框架介绍 Struts2是一个基于Java语言...同时,对于未来技术选型,Oracle数据库推荐优先考虑使用CLOB和BLOB类型来存储大型数据,因为这些类型比LONG类型拥有更好的特性,例如更大的容量和更好的操作灵活性。

    oracle基本数据类型

    Oracle 中的二进制类型包括 raw、long raw、blob、clob、nclob 等。 * raw(n):可变长二进制数据,最大长度限制是 2000 字节。 * long raw:无可变长二进制数据,最大长度限制是 2GB。 * blob:大型对象,用于保存...

    大文本(Blob)对象处理

    例如,Oracle数据库支持`LongRaw`和`Raw`类型,而SQL Server则支持`Image`和`Text`类型,因此,在设计数据库表结构时,需要根据实际使用的数据库类型来确定Blob字段的具体类型。 - **性能优化:** 当处理较大的Blob...

    Oracle与.Net 数据类型映射

    5. **其他类型**:RAW(固定长度的二进制数据)、LONG RAW(长二进制数据)、PL/SQL记录和游标类型。 而在.NET Framework中,C#语言提供了相应的数据类型,如: 1. **数值类型**:int、decimal、long、short等对应...

    Oracle与DB2数据类型的对应说明书

    DB2/400提供VARCHAR和CLOB与Oracle中的RAW和LONG RAW相对应。Oracle也支持大对象:BLOB、CLOB、NCLOB等。DB2/400中的BLOB和CLOB只能存放2GB的数据,而Oracle中的BLOB和CLOB可以提供4GB的空间。 五、ROWID类型 ...

    PowerDesigner字段与Oracle字段对应

    - `Maximum Long Binary` 或 `image`、`BLOB`: 对应 Oracle 的 `BLOB`,存储最大长度的二进制数据。 - `Bitmap` 类型如 `image`、`BMP`: 用于存储位图格式(BMP)的图像,对应 Oracle 的 `BLOB`。 - `Max Image` ...

Global site tag (gtag.js) - Google Analytics