登录 | 注册
首页
方案案例
技术社区
资源中心
培训体系
服务合作
关于我们
SUNDB的SQL培训之数据类型
SUNDB的SQL培训之SQL数据类型
码筑匠心
专栏:数据架构师笔记 2024-07-29 3 0
分享到:

一、常用数据类型及与Oracle的对应关系


image.png


二、注意事项

1.大对象类型的注意事项

  • 大对象容量

Oracle中的clob和blob最大可存储(232-1 bytes)*(database block size),SUNDB中的long varchar和long varbinary最大可存储100M,需要注意.

  • 插入大对象

虽然long varchar、long varbinary可以存储100M,但是直接在insert语句中插入这类字段超过4000长度会报错,需要用cast 函数处理。

例1:在插入语句中,要向LONG VARCHAR类型字段中存储的字符串为'ABCD’,为了简化长字符串显示,这里假设每一个字符分别代表

一个2000长度的字符串,即A、'B、'℃”、"D'各表示一个2000长度的字符串,所以ABCD'字符串长度为8000,想要将这个字符串插入到表中,

需将其改写为下面格式:CAST(AB'AS LONG VARCAHR)ICASTCD' AS LONG VARCHAR)

例2:在插入语句中,要向LONG VARBINARY类型字段中存储的二进制字符串为UNHEX(ABCD’),假设同上,将其改写为下面形式:

UNHEX(CAST('AB' AS LONG VARBINARY)ICAST('CD' AS LONG VARBINARY))注:UNHEX()函数将16进制字符串转换为二进制字符串。


2.日期、时间类型的注意事项

  • 时间戳精度TIMESTAMP 

[(fractional seconds precision)]在Orace中和SUNDB中factional seconds precision默认值都是6,

但Orace中取值范围是0~9,SUNDB中取值范围是0-6,当应用从Oracle迁移到SUNDB时需注意Oracle中时间戳的秒精度。

  • 格式化字符串默认格式化串由NLS DATE FORMAT、NLS TIMESTAMP FORMAT参数设置, SUNDB和Oracle中一样。

建议对时间戳类型进行DML操作时,尽量显示地指定格式化串,以增加应用地可移植性。


3.字符串长度计量单位注意事项

Oracle 通过NLS_LENGTH_SEMANTICS参数修改默认字符串长度单位,SUNDB建库时指定,建库后不能修改。

image.png


三、伪列

image.png





0
评论

登录后发表回复

暂无评论
专栏作者
码筑匠心

技术专家

  • 文章

    9
  • 阅读量

    53
  • 获赞

    7
数据库适配过程中的经验分享
专栏其它文章更多 》

SUNDB

常见问题集锦

SUNDB

免费试用

回复