Oracle引擎函数
ORACLE_ASCII()
将字符转换为ASCII 码。
语法
ASCII(single_character)
当参数为’’(空串)时,返回NULL,ASCII()函数返回0
ORACLE_COSH()
语法
ORACLE_COSH(X)
计算X 的双曲余弦值。
ORACLE_CURRENT_TIMESTAMP()
与时区设置有关,返回的秒是系统的,返回的日期和时间是根据时区转换过的。
注意
1)ORACLE 引擎不支持CURRENT_TIMESTAMP 函数。
2)不带oracle_得到up 的时间,带oracle_得到oracle 的时间。
ORACLE_INSTRB()
语法
ORACLE_INSTRB(string1,string2[,start_position[,nth_appearence]])
字符串查找函数,返回字符串位置。
string1:要在此字符串中查找。
string2:要在string1 中查找的字符串。
start_position:从string1 开始查找的位置。可选,默认为1,正数时,从左到右检
索,负数时,从右到左检索。
nth_appearence:查找第几次出现string2。可选,默认为1,不能为负。
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 597
注意
如果没有查找到,返回0。
ORACLE_LENGTHB()
语法
ORACLE_LENGTHB (string_para)
返回字符按字节计算长度,
一个汉字的字节长度的计算与oracle 数据库字符集有关,
GBK 和USASCII 字符集下每个汉字字节长度为2,
UTF8 下每个汉字字节长度为3。
ORACLE_LOCALTIMESTAMP()
返回会话中的日期和时间。
语法
select oracle_localtimestamp() from dual;
注意
1)ORACLE 引擎不支持localtimestamp 函数;
2)不带oracle_得到up 的时间,带oracle_得到oracle 的时间。
ORACLE_STDDEV
计算当前行关于组的标准偏离。
ORACLE_STDDEV_POP
该函数计算总体标准偏离,并返回总体变量的平方根,其返回值与VAR_POP 函数
的平方根相同。
ORACLE_TANH()
语法
ORACLE_TANH(X)
计算X 的双曲正切值。
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 598
ORACLE_TRIM()
语法
ORACLE_TRIM (string A)
去掉字符串A 的左右空白符号。
ORACLE_TO_CHAR()
用作日期转换。
语法
ORACLE_TO_CHAR ()
表 5-131
函数
返回
描述
示例
Oracle_to_char(timestam
p, text)
text
把 timestamp 转换成
string
Oracle_to_char(sysdate(),'HH12:MI:SS
')
Oracle_to_char(int, text)
text
把 int4/int8 转换成
string
Oracle_to_char(125, '999')
Oracle_to_char(float,
text)
text
把 float4/float8 转换
成 string
Oracle_to_char(125.8, '999D9')
Oracle_to_char(numeric,
text)
text
把 numeric 转换成
string
Oracle_to_char('-125.8', '999D99S')
ORACLE_VAR_POP
该函数返回非空集合的总体变量(忽略null),VAR_POP 进行如下计算:
语法
(SUM(expr2) - SUM(expr)2 / COUNT(expr)) / COUNT(expr)
ORACLE_VARIANCE
该函数返回表达式的变量,Oracle 计算该变量如下:
如果表达式中行数为1,则返回0;
如果表达式中行数大于1,则返回VAR_SAMP。
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 599
ORACLE_SYSDATE()
以“YYYY-MM-DD HH:MI:SS”或“YYYYMMDDHHMISS”格式返回ORACLE
系统的日期时间值,返回的格式取决于该函数是用于字符串还是数字上下文中。
示例
示例1:使用ORACLE_SYSDATE()函数返回ORACLE 系统当前的“日期+时间”。
gbase> SELECT ORACLE_SYSDATE() FROM t;
+---------------------+
| ORACLE_SYSDATE() |
+---------------------+
| 2013-10-12 13:38:18 |
+---------------------+
1 row in set
注意
1)ORACLE 引擎不支持sysdate, oracle_sysdate 函数。
2)不带oracle_得到up 的时间,带oracle_得到oracle 的时间。
ORACLE_TRUNC(date/datetime[, format])
ORACLE_TRUNC 函数返回以指定元素格式截去一部分的日期值。
date/datetime 为必选参数,表示输入的一个日期值
format 为可选参数,表示日期格式,用以指定的元素格式来截去输入的日期值。如
果省略此参数,则由最近的日期截去。
format 支持的类型如下表所示。
表 5-132
参 数
说 明
year
返回当年第一天
yyyy
返回当年第一天
month
返回当月第一天
mm
返回当月第一天
dd
返回当天的日期
hh
得到当天凌晨0 点0 分0 秒的日期
mi
得到当天凌晨0 点0 分0 秒的日期
示例
示例1:返回当年的第一天。
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 600
gbase> SELECT TRUNC(current_date,'year') FROM t;
+----------------------------+
| TRUNC(current_date,'year') |
+----------------------------+
| 2013-01-01 |
+----------------------------+
1 row in set
示例2:返回当年的第一天。
gbase> SELECT TRUNC(current_date,'yyyy') FROM t;
+----------------------------+
| TRUNC(current_date,'yyyy') |
+----------------------------+
| 2013-01-01 |
+----------------------------+
1 row in set
示例3:返回当月的第一天。
gbase> SELECT TRUNC(current_date,'mm') FROM t;
+--------------------------+
| TRUNC(current_date,'mm') |
+--------------------------+
| 2013-10-01 |
+--------------------------+
1 row in set
示例4:返回当天的日期。
gbase> SELECT TRUNC(current_date,'dd') FROM t;
+--------------------------+
| TRUNC(current_date,'dd') |
+--------------------------+
| 2013-10-12 |
+--------------------------+
1 row in set
示例5:得到当天凌晨0 点0 分0 秒的日期。
gbase> SELECT TRUNC(current_date,'hh') FROM t;
+--------------------------+
| TRUNC(current_date,'hh') |
+--------------------------+
| 2013-10-12 00:00:00 |
+--------------------------+
1 row in set
示例6:得到当天凌晨0 点0 分0 秒的日期。
gbase> SELECT TRUNC(current_date,'mi') FROM t;
+--------------------------+
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 601
| TRUNC(current_date,'mi') |
+--------------------------+
| 2013-10-12 00:00:00 |
+--------------------------+
1 row in set
注意
Oracle 引擎的ORACLE_TRUNC 函数支持日期和数字类型
(同8a 的TRUNCATE 函数)
的截断,因此第一个参数要么为日期类型,如果是字符串,则被认为是数字类型,要
能够转换成数字。例如:
ORACLE_TRUNC(TO_DATE(‘2017-08-30’, ‘YYYY-MM-DD’), ‘year’)
ORACLE_TRUNC(1232.23454, 2)
Hive 引擎函数(马海燕)
HIVE_DECODE()
HIVE_DECODE (binary bin, string charset)
使用指定的字符集charset 将二进制值bin 解码成字符串,支持的字符集有:
'US-ASCII', 'ISO-8859-1', 'UTF-8', 'UTF-16BE', 'UTF-16LE', 'UTF-16',如果任意输入
参数为NULL 都将返回NULL。
HIVE_TRIM()
HIVE_TRIM (string A)
去掉字符串A 的左右空白符号。
HIVE_DATE_ADD(date,expr)
返回开始日期date 增加expr 天后的日期。
示例:
gbase> SELECT HIVE_DATE_ADD('2010-01-02',3) FROM test_hive.t;
+-------------------------------+
| HIVE_DATE_ADD('2010-01-02',3) |
+-------------------------------+
| 2010-01-05 |
+-------------------------------+
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 602
1 row in set (Elapsed: 00:00:00.30)
gbase> SELECT HIVE_DATE_ADD(sysdate(),-3) FROM test_hive.t;
+-----------------------------+
| HIVE_DATE_ADD(sysdate(),-3) |
+-----------------------------+
| 2017-11-20 |
+-----------------------------+
1 row in set (Elapsed: 00:00:00.46)
HIVE_DATE_SUB(date,expr)
返回开始日期date 减少expr 天后的日期。
示例:
gbase> SELECT HIVE_DATE_SUB (sysdate(),-3) FROM test_hive.t;
+-----------------------------+
| HIVE_DATE_SUB(sysdate(),3) |
+-----------------------------+
| 2017-11-20 |
+-----------------------------+
1 row in set (Elapsed: 00:00:00.46)
HIVE_ADD_MONTHS(date,number)
HIVE_ADD_MONTHS(date, number)函数是在一个日期上加上指定的月份数,
其中,
日期中的日是不变的。
如果开始日期是某月的最后一天,结果将会进行调整,返回值会对应新的一月的最
后一天。
如果结果月份的天数比开始月份的天数少,返回值也会向回调整以适应有效日期。
示例:
gbase> select hive_add_months('2017-11-20',3) from t;
+---------------------------------+
| hive_add_months('2017-11-20',3) |
+---------------------------------+
| 2018-02-20 |
GBase UP 产品手册 5 数据库管理指南
文档版本04(2021-04-21) 南大通用数据技术股份有限公司 603
+---------------------------------+
1 row in set (Elapsed: 00:00:00.40)
DDL 语法
GBase UP 用于创建数据库对象的DDL 语句。
HIVE 不支持的语法HIVE 引擎也不支持。
DATABASE