3. 常用函数
3.1. 有区别的函数
表 3.1.6 有区别的函数
序号
Oracle函数名
KingbaseES函数名
功能简要说明
数值函数
1
REMAINDER(n2,n1)
/
取 第一个参数除以 第二个参数的余 数,参数类型是 number或者可以 转换为number的
2
NANVL(n2,n1)
/
当n2为NaN 时,函数返回n1 当n2不为NaN时, 函数返回n2,参 数类型是浮点数
3
/
cbrt(dp)
立方根函数
4
/
degrees(dp)
把 弧度转换为角度
5
/
radians(dp)
把 角度转换为弧度
6
/
div(y numeric,x numeric)
y/x的整数商
7
/
pi()
常数值
3.14159265358979
8
/
scale(numeric)
返回参数的精度 ,小数点后位数
字符函数
1
CHR(int,[USING NCHAR_CS])
chr(int)
返回int类型参 数指定的值的字 符,KingbaseES 不允许为0,Oracle 可以输入0
2
NCHR(number)
/
返回 number类型值的 国际字符,Kingb aseES不支持超出 字符范围的数值
3
REGEXP_REPLACE (source_char,pattern, replace_string,position, occurrence,match_param)
regexp_replace(string text,pattern text, replacement text [, flags])
替换 匹配。Oracle与 KingbaseES使用 方式部分不同, Oracle中,position代表从源第几个字符开始 occurrence代表第几次替换。 KingbaseES没有这个参数
4
REGEXP_COUNT(source_char pattern[,position [,match_param]])
regexp_count(source_char,pattern [,position, [,match_param]])
返回 匹配字符串数量。 Oracle与KingbaseES的某些数据类型不同 导致结果不同,例如time类型。 Oracle与KingbaseES的正则中 match_param的意义有部分不同导致结 果不同,可参考 正则表达式元语法 。
5
REGEXP_INSTR(source_char, pattern [,position[,occurrence [,return_option [,match_param [,subexpr]]]]])
regexp_instr(source_char,pattern [,position [,occurrence [,return_option [,match_param [,subexpr]]]]])
返回字 符串的起始位置,或者结束位置。 Oracle与KingbaseES的某些数据类型不同 导致结果不同,例如time类型。 Oracle与KingbaseES的正则中 match_param的意义有部分不同导致结 果不同,可参考 正则表达式元语法 。
6
/
strpos(string,substring)
position(substring in string)
返回指定字符串位置
7
/
convert(expr1 text,[,expr2 text],expr3 text)
把字符串 转换为expr3 中声明的编码
8
NLS_INITCAP(char,[NLS_SORT = sort])
INITCAP(string)
将每一个词 的第一个字母转 换为大写形式并 把剩下的字母转 换为小写形式。
9
NLS_LOWER(char,nlsparam)
lower(string)
将字符串 转换为小写形式
10
CONCAT(char1,char2)
concat(str "any" [, str "any" [, ...]])
串接所有参数的 文本表示。NULL 参数被忽略。 Oracle :支持2个参数。 KingbaseES :支持多个参数
11
/
regexp_matches(string text, pattern text[,flags text])
返回对 string匹配一个 POSIX正则表达式 得到的所有子串
日期类函数
1
CURRENT_TIMESTAMP (precision)
CURRENT_TIMESTAMP
返 回当前日期时间 区别是精度不同
2
/
age(timestamp,timestamp)
age(timestamp)
减去参数,生成一个使用年、月(而不是只用日)的 "符号化"的结果
3
/
clock_timestamp()
返回 当前日期和时间
4
/
date_part(text,timestamp)
date_part(text,interval)
返回 日期时间的子域
5
TRUNC(date,fmt)
date_trunc(text,timestamp)
date_trunc(text,interval)
返回截断到参数指定的日期时间
6
TO_DSINTERVAL(sql_format)
make_interval(years int DEFAULT 0, months int DEFAULT 0, weeks int DEFAULT 0, days intDE FAULT 0, hours int DEFAULT 0, mins int DEFAULT 0, secs double precision DEFAULT 0.0)
构造一个interval,输入参数一个是字符串,一 个是数字
7
/
now()
返回 当前日期和时间
比较函数
1
GREATEST(expr,expr,expr,...)
LEAST(expr,expr,expr,...)
GREATEST(value[, ...])
LEAST(value [,...])
选取最大或者最小的数值
oracle:只要有一个参数是null,则结果返回null
KingbaseES:全部参数是null才返回null
序列函数
1
/
currval(regclass)
返回最近一 次用nextval获取 的指定序列的值
2
/
nextval(regclass)
递增 序列并返回新值
3
/
setval(regclass,bigint)
setval(regclass,bigint,boolean)
设置序列的当前值
4
/
lastval()
返回最近一 次用nextval获取 的任何序列的值
大对象函数
1
/
clob_import(string,string)
将指定的文件以 clob大对象的形 式导入数据库。
2
/
clob_export(clob,string,string)
将clob 大对象的内容导 出到磁盘文件。
3
/
blob_import(string,string)
将指定的文件以 blob大对象的形 式导入数据库。
4
/
blob_export(blob,string,string)
将blob 大