SQL 数据类型

最近更新时间:2024-11-01 15:20:42

我的收藏
本节主要介绍 TDSQL PG 数据库的 Oracle 兼容模式与原生 Oracle 数据库中 SQL 数据类型的兼容对比信息。
我们把 Oracle 数据库的数据类型大体分为几类,以下简单说明与 TDSQL PG 中数据类型的差异:
字符类型,包括:
Oracle 数据类型
TDSQL PG 数据库是否支持
说明
CHAR [(size [BYTE | CHAR])]
支持
固定字符长度的字符类型,TDSQL PG 目前仅支持指定 size 为 CHAR(字符长度)。
NCHAR[(size)]
支持
固定字符长度的字符类型,TDSQL PG 目前不区分 UNICODE 字符和非 UNICODE 字符。
VARCHAR2(size [BYTE | CHAR])
支持
可变字节长度的字符类型,TDSQL PG 目前仅支持指定 size 为 BYTE(字节长度)。
NVARCHAR2(size)
支持
可变字符长度的字符类型,TDSQL PG 目前不区分 UNICODE 字符和非 UNICODE 字符。
LONG
支持
可变长度的字符类型,oracle 已废弃,仅供兼容历史版本使用。
数字类型,包括:
Oracle 数据类型
TDSQL PG 数据库是否支持
说明
NUMBER[(p[,s])]
支持
精度为 p 并且数值范围为 s 的数字类型,底层为 TDSQL PG 中的 NUMERIC
FLOAT[(p)]
支持
精度为 p 的浮点型,底层为 TDSQL PG 中的 NUMERIC
BINARY_FLOAT
支持
浮点型,底层为 TDSQL PG 中的 NUMERIC
BINARY_DOUBLE
支持
浮点型,底层为 TDSQL PG 中的 NUMERIC
时间类型,包括:
Oracle 数据类型
TDSQL PG 数据库是否支持
说明
DATE
支持
时间类型,显示格式取决于 NLS_DATE_FORMAT 格式
TIMESTAMP [(fractional_seconds_precision)]
支持
时间戳类型,fractional_seconds_precision 表示其中秒的小数位数
TIMESTAMP [(fractional_seconds_precision)] WITH TIME ZONE
支持
带时区的时间戳类型,fractional_seconds_precision 同 TIMESTAMP
TIMESTAMP [(fractional_seconds_precision)] WITH LOCAL TIME ZONE
支持
带本地时区的时间戳,fractional_seconds_precision 同 TIMESTAMP
INTERVAL YEAR [(year_precision)] TO MONTH
支持
包含年、月的时间间隔类型,year_precision 是年的数字位数
INTERVAL DAY [(day_precision)] TO SECOND [(fractional_seconds_precision)]
支持
包含天、小时、分钟、秒的时间间隔类型,day_precision 表示天的数字位数,fractional_seconds_precision 同 TIMESTAMP
RAW 和 LONG RAW 类型
Oracle 数据类型
TDSQL PG 数据库是否支持
说明
RAW(size)
支持
可变字节长度的二进制数据类型
LONG RAW(size)
支持
可变字节长度的二进制数据类型
大对象类型,包括:
Oracle 数据类型
TDSQL PG 数据库是否支持
说明
BFILE
支持
外部二进制文件类型
BLOB
支持
二进制大对象
CLOB
支持
字符大对象
NCLOB
支持
同 CLOB,TDSQL PG 目前不区分 UNICODE 字符和非 UNICODE 字符。
ROWID 和 UROWID 类型
Oracle 数据类型
TDSQL PG 数据库是否支持
说明
ROWID
支持
行标识符,可以唯一标识表中的一行。
UROWID
支持
同 ROWID
XMLTYPE 类型
Oracle 数据类型
TDSQL PG 数据库是否支持
说明
XMLTYPE
支持
用于存储 XML 数据格式的类型
目前上述的 Oracle 数据类型,除了说明中标出的不同的地方,其他的地方 TDSQL PG 和 Oracle 完全相同的使用方法,更加详细的说明可以参考 Oracle 的官方文档。