数据库Oracle 在查询的时候将LONG类型转换成VARCHAR2

数据库Oracle 在查询的时候将LONG类型转换成VARCHAR2,第1张

Oracle中的LONG类型有两种:

LONG文本类型,能存储2GB的文本。与VARCHAR2或CHAR类型一样,存储在LONG类型中的文本要进行字符集转换。

LONG RAW类型,能存储2GB的原始二进制数据(不用进行字符集转换的数据)。

在此并不解释如何使用LONG类型,而是会解释为什么你不希望在应用中使用LONG(或LONG RAW)类型。首先要注意的是,Oracle文档在如何处理LONG类型方面描述得很明确。Oracle SQL Reference手册指出:

不要创建带LONG列的表,而应该使用LOB列(CLOB、NCLOB、BLOB)。支持LONG列只是为了保证向后兼容性。

没有内置的函数处理,得自己写处理函数,可以参考:网页链接

第一,数据库中没有long型。oracle db2等数据库中,请使用number(24)作为类型。java中long的长度好像没超过16位。如果使用很大的整数,请使用java.math包中的 bigInteger类型。

第二。你这个完全可以存储为字符串或者日期类型好么?

Oracle 中LONG 是 可变长度的字符数据,其长度可达2G个字节,而非JAVA中的long类型,所有才会出现数字转成字符的错误,必须得用TO_CHAR方法才可以,反之是没问题的。

你用number类型存就可以了,包含java中的long的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9909477.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存