暂无图片
暂无图片
3
暂无图片
暂无图片
暂无图片

GoldenDB兼容Oracle的SQL数据类型&兼容Oracle的视图

原创 蒋宇智 2024-03-14
1814

兼容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

文章转载自蒋宇智,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论