
一、大对象类型的注意事项
1,大对象容量
Oracle中的clob和blob最大可存储(2^32-1 bytes) * (database block size),SUNDB中的long varchar和long varbinary最大可存储100M,需要注意。
2,插入大对象
虽然long varchar、long varbinary可以存储100M,但是直接在insert语句中插入这类字段超过4000长度会报错,需要用cast 函数处理。
例1:在插入语句中,要向LONG VARCHAR类型字段中存储的字符串为‘ABCD’ ,为了简化长字符串显示,这里假设每一个字符分别代表一个2000长度的字符串,即’A’、’B’、’C’、’D’各表示一个2000长度的字符串,所以’ABCD’字符串长度为8000,想要将这个字符串插入到表中,需将其改写为下面格式:CAST(‘AB’ AS LONG VARCAHR)||CAST(‘CD’ AS LONG VARCHAR)
例2:在插入语句中,要向LONG VARBINARY类型字段中存储的二进制字符串为UNHEX(‘ABCD‘),假设同上,将其改写为下面形式:UNHEX(CAST(‘AB’ AS LONG VARBINARY)||CAST(‘CD’ AS LONG VARBINARY))
注:UNHEX()函数将16进制字符串转换为二进制字符串。
3,使用JDBC可以直接操作LOB类型。
二、日期、时间类型的注意事项
- 时间戳精度
TIMESTAMP [(fractional_seconds_precision)]
在Oracle中和SUNDB中fractional_seconds_precision默认值都是6,但Oracle中取值范围是09,SUNDB中取值范围是06,当应用从Oracle迁移到SUNDB时需注意Oracle中时间戳的秒精度。 - 格式化字符串
默认格式化串由NLS_DATE_FORMAT、NLS_TIMESTAMP_FORMAT参数设置, SUNDB和Oracle中一样。建议对时间戳类型进行DML操作时,尽量显示地指定格式化串,以增加应用地可移植性。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




