SQLserver字段类型转oracle,ORACLE,SQLSERVER不同数据库间大字段blob的转换

思路SQLServerBlob-->InputStream-->oracle.sql.BLOB

环境,项目中需要进行SQLSERVER和ORACLE的数据同步.

将SQLSERVER中的BLOB转换为ORACLE的BLOB

1.[代码][Java]代码

思路SQLServerBlob-->InputStream-->oracle.sql.BLOB

环境,项目中需要进行SQLSERVER和ORACLE的数据同步.

>>>>>将SQLSERVER中的BLOB转换为ORACLE的BLOB<<<<<

项目中配置2个数据源,分别连接SQLSERVER和ORACLE

ORACLE中的POJO映射为BLOB字段类型

@Lob()

@Basic(fetch = FetchType.LAZY)

@Column(name = "MODALSMALLPIC",columnDefinition = "BLOB",nullable=true)

1 使用SQLQUERY查询SQLSERVER数据库

//mrpBaseDao连接的是SQLSERVER数据库

query=(SQLQuery)mrpBaseDao.createSQLQuery(mrpWlmzSql.toString());

query.addScalar("modalsmallpic",Hibernate.BLOB);

List objList = query.list();

进行查询再将objList对象中的数据取出来

//将Object中的数据转化为SerializableBlob

//org.hibernate.lob.SerializableBlob

SerializableBlob sqlBlob=(SerializableBlob)objList.get(i)[1];

Blob blob=Hibernate.createBlob(sqlBlob.getBinaryStream());

得到了blob对象后,再将该值传递到POJO中的具体字段上即可.

//baseDao连接的是ORACLE数据源

wlmz = baseDao.get(Wlmz.class,id);

wlmz.setModelpicture(blob);

baseDao.saveOrUpdate(wlmz);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Oracle、MySQL和SQL Server是三种常见的关系型数据库管理系统(RDBMS),它们在数据类型方面存在一些区别。以下是它们主要的数据类型及其区别: 1. 字符串类型: - Oracle:包括CHAR、VARCHAR2、NCHAR、NVARCHAR2等。 - MySQL:包括CHAR、VARCHAR、TINYTEXT、TEXT、LONGTEXT等。 - SQL Server:包括CHAR、VARCHAR、NCHAR、NVARCHAR、TEXT等。 2. 数类型: - Oracle:包括NUMBER、INTEGER、FLOAT、DOUBLE PRECISION等。 - MySQL:包括INT、BIGINT、FLOAT、DOUBLE等。 - SQL Server:包括INT、BIGINT、FLOAT、REAL等。 3. 日期和时类型: - Oracle:包括DATE、TIMESTAMP、INTERVAL等。 - MySQL:包括DATE、TIME、DATETIME等。 - SQL Server:包括DATE、TIME、DATETIME等。 4. 二进制类型: - Oracle:包括BLOB、RAW等。 - MySQL:包括BLOB、BINARY等。 - SQL Server:包括BLOB、BINARY等。 5. 布尔类型: - Oracle:不支持原生的布尔类型,可以使用NUMBER(1)或CHAR(1)来表示。 - MySQL:支持BOOL或BOOLEAN类型。 - SQL Server:不支持原生的布尔类型,可以使用BIT来表示。 6. 其他特殊类型: - Oracle:包括CLOB(大文本)、BFILE(二进制文件)等。 - MySQL:包括ENUM、SET等。 - SQL Server:包括XML、CURSOR等。 需要注意的是,尽管这些数据库有一些相同的数据类型,但在具体实现和功能上可能存在一些差异。此外,每个数据库还可能支持一些特定的扩展类型或自定义类型。 在选择数据库和设计表结构时,应该根据具体的应用需求和数据库的特性来选择合适的数据类型

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值