兼容Oracle的SQL数据类型
GoldenDB数据库目前支持8种Oracle数据类型,详细信息如下表所示。
| GoldenDB数据类型 | 说明 |
|---|---|
FLOAT(5) | 4字节单精度浮点数 |
NUMBER(n,s) | 数值型,n为数值总长度,范围1-65,s为小数点后长度,范围0-30,s必须不大于n |
DATE | 日期,范围:1000-01-01 – 9999-12-31 |
TIMESTAMP | UTC日期和时间,范围:1970-01-01 00:00:01.000000 – 2038-01-19 03:14:07.999999 |
CHAR(10) | 定长字符型,最多255个字符 |
BLOB | 最大长度为65,535(216–1)字节的BLOB列 |
CLOB | 二进制形式的长文本数据,0-65535字节 |
VARCHAR2 | 支持VARCHAR2(num) 、VARCHAR2(num BYTE) 、VARCHAR2(num CHAR) 三种用法,前两种用法等价;存储过程参数类型为VARCHAR2且未指定长度时,默认长度为4000字节; |
兼容Oracle的内置函数
Oracle数据库中共有内置函数257个,GoldenDB数据库支持89个。
支持的函数列表以及函数说明如下表所示:
| 函数名 | 说明 |
|---|---|
ABS | 绝对值 |
AVG | 平均值 |
CASE WHEN | CASE操作 |
CAST | 类型转换 |
CEIL/CEILING | 最小整数值 |
CHAR | 数值转字符 |
CHAR_LENGTH | 字符长度 |
COALESCE | 返回第一个非空的参数值 |
CONCAT | 返回结果为连接参数产生的字符串 |
CONVERT | 类型转换 |
COUNT | 行总数 |
COUNT(DISTINCT) | 不同值得总数 |
CURDATE | 获取日期 |
CURRENT_DATE | 同CURDATE |
CURRENT_TIMESTAMP | 同NOW |
CURTIME | 当前时间 |
DATE | 取日期部分值 |
DATE_ADD | 增加时间 |
DATE_FORMAT | 格式日期 |
DATE_SUB | 减时间 |
DATEDIFF | 两日期值相减 |
DAY | 同DAYOFMONTH |
DAYNAME | 返回星期名词 |
DAYOFMONTH | 返回一月的第几天 |
DAYOFWEEK | 返回星期序号 |
DAYOFYEAR | 返回一年的第几天 |
FLOOR | 返回小于等于入参值的最大整数 |
HEXTORAW | 十六进制字符串转换为RAW |
HOUR | 返回time对应的小时数 |
IN | IN函数 |
INSTR | 子串的位置 |
LAST_DAY | 月最后一天 |
LCASE | 同LOWER |
LENGTH | 字符串长度 |
LOWER | 转为小写字符 |
LTRIM | 去除空格 |
MAX | 最大值 |
MIN | 最小值 |
MINUTE | 分钟 |
MONTH | 月 |
NOT IN | IN函数 |
NOW | 获取当前时间 |
RAND | 随机值 |
REPLACE | 字符串 |
ROUND | 返回参数X, 其值接近于最近似的整数 |
RTRIM | 除空格 |
STR_TO_DATE | 字符串转为日期 |
STRCMP | 字符串比较 |
SUBSTR | 取子字符串 |
SUM | 求和 |
TIME | 时间函数 |
TIMEDIFF | 时间相减 |
TIMESTAMPADD | 日期相加 |
TIMESTAMPDIFF | 时间相减 |
TO_DAYS | 转换成天 |
TO_SECONDS | 转换成秒 |
TRIM | 去除空格 |
UPPER | 转为大写字符 |
WEEK | 范围星期值 |
YEAR | 获取年 |
GROUP_CONCAT | 分组连接 |
FROM_UNIXTIME | 时间格式转换 |
LEFT | 字符串左截取 |
RIGHT | 字符串右截取 |
LPAD | 左补字符 |
RPAD | 右补字符 |
TO_DATE | 日期转换函数 |
SYSDATE | 获取系统当前时间 |
INITCAP | 将字符串中各单词首字母转大写,其他字母转小写 |
NVL | 获取非空串 |
DECODE | 类似CASE WHEN |
|| | 连接符 |
ROWNUM | 序列 |
TO_TIMESTAMP | 日期转换函数 |
TO_CHAR | 字符串转换函数 |
CHR(X) | 返回在数据库字符集中与X拥有等价数值的字符 |
TRUNC(x[,y]) | 算截尾到y位小数的x值. y缺省为0,结果变为一个整数值.如果y是一 个负数,那么就截尾到小数点左边对应的位上 |
NEXT_DAY(SYSDATE,X) | 从当前日期开始得到到未来星期数的日期 |
INSTR(string1, string2[a,b]) | 得到在string1中包含string2的位置 |
TO_NUMBER() | 将CHAR或VARCHA R2类型的string转换为一个number类型的数值 |
SYSTIMESTAMP | 函数返回本机数据库上当前系统日期和时间(包括微秒和时区) |
ADD_MONTHS(X, Y) | 计算在时间x之上机上Y个 月后的时间值,要是Y的值为负数的话就是在 这个时间点之前的时间值(这个时间-Y个月) |
LENGTH(str) | 在设置Oracle模式时为获取字符串的字符数; 在设置为MySQL模式时为获取字符串的字节数 |
LENGTHB(str) | Oracle模式和MySQL模式下均为获取字符串的字节数 |
FETCH FIRST N ROW[S] [ONLY] | 获取前n行 |
ROW_NUMBER() OVER() | 分析函数,会在数据表生成一个排序列 |
DENSE_RANK() OVER() | 分析函数,会在数据表生成一个排序列 |
UUID() | 用于生成uuid,即通用唯一标识符 |
REPLACE(UUID(),‘-’,’’) | 默认生成的uuid含有’-‘, 使用该函数可以替换掉uuid中的’-’ |
兼容Oracle的视图
GoldenDB兼容的Oracle数据库字典视图和系统视图。
数字字典视图
GoldenDB数据库兼容的Oracle数据字典视图具体条目如下:
● all_col_comments
● all_cons_columns
● all_constraints
● all_ind_columns
● all_ind_expressions
● all_ind_partitions
● all_ind_subpartitions
● all_indexes
● all_objects
● all_part_indexes
● all_part_key_columns
● all_part_tables
● all_procedures
● all_sequences
● all_source
● all_synonyms
● all_tab_cols
● all_tab_columns
● all_tab_partitions
● all_tab_privs
● all_tab_statistics
● all_tab_subpartitions
● all_tables
● all_triggers
● all_types
● all_users
● all_views
● dba_col_comments
● dba_cons_columns
● dba_constraints
● dba_free_space
● dba_ind_columns
● dba_ind_expressions
● dba_ind_partitions
● dba_ind_subpartitions
● dba_indexes
● dba_objects
● dba_part_indexes
● dba_part_key_columns
● dba_part_tables
● dba_procedures
● dba_segments
● dba_sequences
● dba_source
● dba_synonyms
● dba_tab_cols
● dba_tab_columns
● dba_tab_partitions
● dba_tab_privs
● dba_tab_statistics
● dba_tab_subpartitions
● dba_tables
● dba_tablespace_usage_metrics
● dba_triggers
● dba_types
● dba_users
● dba_views
● dba_role_privs
● dba_sequences
● dba_sys_privs
● dba_tablespaces
● user_col_comments
● user_cons_columns
● user_constraints
● user_ind_columns
● user_ind_expressions
● user_ind_partitions
● user_ind_subpartitions
● user_indexes
● user_jobs
● user_objects
● user_part_indexes
● user_part_key_columns
● user_part_tables
● user_procedures
● user_segments
● user_sequences
● user_source
● user_synonyms
● user_sys_privs
● user_tab_cols
● user_tab_columns
● user_tab_partitions
● user_tab_privs
● user_tab_statistics
● user_tab_subpartitions
● user_tables
● user_tablespaces
● user_triggers
● user_types
● user_users
● user_views
● tab
● Tabs
系统视图
GoldenDB数据库兼容的Oracle数据字典视图具体条目如下:
● v$database
● v$instance
● v$lock
● v$locked_object
● v$mystat
● v$parameter
● v$session
● v$session_wait
● v$sql
● v$statname
● v$sysstat
● v$thread
● v$timezone_names
● v$version




