暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

Oracle函数和梧桐2.0函数对比使用介绍

原创 easilyyy 2024-10-30
159

Oracle函数和梧桐2.0函数对比使用介绍

Oracle 在使用中有些常用的函数,我们针对这些函数内容梳理了基于梧桐2.0版本的替代解决方法,以便用户在平时国产化项目及其他工作更加方便的对照和参考。

1、字符串函数和操作符

Oracle函数 梧桐函数 返回类型 描述 例子 结果
length(char) char_length(string) or
character_length(string)
int 字符串的字符个数 Oracle:
select length(‘jose’) from dual;
WuTong数据库:
select char_length(‘jose’)
4
lengthb(char) octet_length(string) int 字符串中的字节数 Oracle:
select lengthb(‘jose’) from dual;
WuTong数据库:
select octet_length(‘jose’)
4
instr(string , substring) position(substring in string) int 指定子字符串的位置 Oracle:
select instr(‘Thomas’,‘om’) from dual;
WuTong数据库:
select position(‘om’ in ‘Thomas’)
3
instr(string , substring) strpos(string, substring) int 指定的子字符串的位置。和position(substring in string)一样,不过参数顺序相反。 Oracle:
select instr(‘Thomas’,‘om’) from dual;
WuTong数据库:
select strpos(‘Thomas’, ‘om’)
3
substr(string, position) substring(string [from int][for int]) text 截取子字符串 Oracle:
select substr(‘Thomas’,2,3) from dual;
WuTong数据库:
select substring(‘Thomas’ from 2 for 3)
hom
substr(string, position) substring(string from pattern) text 截取匹配POSIX正则表达式的子字符串。 Oracle:
select substr(‘Thomas’,4,3) from dual;
WuTong数据库:
select substring(‘Thomas’ from ‘…$’)
mas
replace(replace(varchar2,char,char),‘y’,’’) btrim(string text [, characters text]) text 从string开头和结尾删除只包含 characters中字符(缺省是空白)的最长字符串。 Oracle:
select replace(replace(‘xyxtrimyyx’,‘x’,’’),‘y’,’’) from dual;
WuTong数据库:
select btrim(‘xyxtrimyyx’, ‘xy’)
trim
chr(int) chr(int) text 给定的ASCII码对应的字符 Oracle:select chr(65) from dual;
WuTong数据库:
select chr(65)
A
ascii(char) ascii(string) int 给定字符对应的ASCII码值 Oracle:select ascii(‘A’) from dual;
WuTong数据库:
select ascii(‘A’)
65
initcap(varchar2) initcap(string) text 把每个单词的第一个字母转为大写,其它的保留小写。 单词是一系列字母数字组成的字符,用非字母数字分隔。 Oracle:
select initcap(‘hi THOMAS’) from dual;
WuTong数据库:
select initcap(‘hi THOMAS’)
Hi Thomas
pg_client_encoding() userenv() name 当前客户端编码名称 Oracle:
select userenv(‘language’) from dual;
WuTong数据库:
select pg_client_encoding();
Oracle:ZHS16GBK
WuTong数据库:UTF8
regexp_replace(varchar2, pattern, varchar2) regexp_replace(string text, pattern text, replacement text [,flags text]) text 用POSIX正则表达式作为分隔符,分隔string。 Oracle:
select regexp_replace(‘Thomas’, ‘.[mN]a.’, ‘M’) from dual;
WuTong数据库:
select regexp_replace(‘Thomas’, ‘.[mN]a.’, ‘M’);
ThM
translate(varchar2, from char, to char) translate(string text, from text, to text) text 把在string中包含的任何匹配from 中字符的字符转化为对应的在to中的字符。 Oracle:
select translate(‘12345’, ‘14’, ‘ax’) from dual;
WuTong数据库:
select translate(‘12345’, ‘14’, ‘ax’)
a23x5
replace(varchar2,char,char) replace(text,text,text) text 用于替换字符串的指定子串 Oracle:
select replace(‘123’,1,2) from dual;
WuTong数据库:
select replace(‘123’,1,2);
223
replace(varchar2,char,char) overlay(string placing string from int [for int]) text 替换子字符串 Oracle:
select replace(‘Txxxxas’,‘xxxx’,‘hom’) from dual;
WuTong数据库:
select overlay(‘Txxxxas’ placing ‘hom’ from 2 for 4)
Thomas
trim(varchar2) trim(text) text 去除字符串的空格或指定字符 Oracle:
select trim(‘ aaa ’) from dual;
WuTong数据库:
select trim(‘ aaa ’);
aaa
ltrim(varchar2) ltrim(text) text 去除字符串左侧的空格或指定字符。 Oracle:
select ltrim(‘ bbb ’) from dual;
WuTong数据库:
select ltrim(‘ bbb ’);
bbb
rtrim(varchar2) rtrim(text) text 去除字符串右侧的空格或指定字符。 Oracle:
select ltrim(‘ ccc ’) from dual;
WuTong数据库:
select ltrim(‘ ccc ’);
ccc
nvl(varchar2,varchar2) nvl(text,text) text 如果string1为NULL,则NVL函数返回replace_with的值,否则返回string1的值。 Oracle:
select nvl (null,0) from dual;;
WuTong数据库:
select nvl (null,0);
0
lower(varchar2) lower(text) text 将字符串所有字母小写 Oracle:
select lower (‘ABC’) from dual;
WuTong数据库:
select lower (‘ABC’);
abc
upper(varchar2) upper(text) text 将字符串所有字母大写 Oracle:
select upper (‘abc’) from dual;
WuTong数据库:
select upper (‘abc ’);
ABC
rpad(varchar2,int,varchar2) rpad(text,int,text) text 在列的右边粘贴字符 Oracle:
select rpad(‘aa’,10,’’) from dual;
WuTong数据库:
select rpad(‘aa’,10,’
’);
aa********
lpad(varchar2,int,varchar2) lpad(text,int,text) text 在列的左边粘贴字符 Oracle:
select lpad(‘aa’,10,’’) from dual;
WuTong数据库:
select lpad(‘aa’,10,’
’);
********aa
concat(char,char) concat(text,text) text 将多个字符串连接为一个字符串。 Oracle:
select concat('hello ',‘world !’) from dual ;
WuTong数据库:
select concat('hello ',‘world !’);
hello world !
greatest(expression1, expression2, …) greatest(expression1, expression2, …) text 函数返回多个表达式中最大的值。 Oracle:
select greatest(5,6,7,8) from dual ;
WuTong数据库:
select greatest(5,6,7,8);
8
translate(varchar2,varchar2,varchar2) translate(text,text,text) text 将字符串中的字符替换为另一个字符串中的对应字符。 Oracle:
select translate(‘abcd’,‘a’,‘1’) from dual ;
WuTong数据库:
select translate(‘abcd’,‘a’,‘1’);
1bcd
nls_initcap(varchar2) initcap(text) text 把每个单词的第一个字母转为大写,其它的保留小写。 Oracle:
select nls_initcap(‘HELLO World’) from dual;
WuTong数据库:
select nls_initcap(‘HELLO World’);
Hello World
cast(expression1 as expression2) cast(expression1 as expression2) 和expression2类型一致 强转数据类型 Oracle:
SELECT CAST(‘20240912’ as int) FROM dual;
WuTong数据库:
SELECT CAST(‘20240912’ as int);
20240912
substrb(varchar2, varchar2, length) substrb(string, start, length) text 类似于 substr,但处理的是字节字符串。(Oracle一个汉字是两个字节,梧桐一个汉字是三个字符) Oracle:
select substrb(‘我们是共产主义接班人’,1,5) from dual;
WuTong数据库:
select substrb(‘我们是共产主义接班人’,1,5);
Oracle结果:
我们
WuTong数据库结果:
TO_CLOB() TEXT() CLOB/TEXT 将非CLOB值转为CLOB,WuTong数据库中用TEXT类型保存大文本数据,效果和Oracle的CLOB一样。 Oracle:
select to_clob(‘123’) from dual;
WuTong数据库:
select text(‘123’);
123
TO_CHAR (number) TO_CHAR (numeric) int 返回计算后的数值 Oracle:
SELECT TO_CHAR(‘01110’ + 1) FROM dual;
WuTong数据库:
SELECT TO_CHAR(‘01110’ + 1) ;
1111

2、数学函数和操作符

Oracle函数 梧桐函数 返回类型 描述 例子 结果
dbms_random.value random () dp 生成两个之间的一个随机数。 Oracle:
select dbms_random.value(1, 2) from dual;;
WuTong数据库:
select random()*(2-1)+1;
1.63333560250552
round(number) round (dp or numeric) 与输入相同 四舍五入运算。 Oracle:
select round (42.4) from dual;
WuTong数据库:
select round (42.4)
42
round (r number, s int) round (v numeric, s int) 与输入相同 近似到小数点后s位 Oracle:
select round (42.432,2) from dual;
WuTong数据库:
select round (42.432,2)
42.43
trunc(number) trunc (dp or numeric) 与输入相同 截断向0接近 Oracle:
select trunc (42.8) from dual;
WuTong数据库:
select trunc (42.8);
42
trunc (v number, s int) trunc (v numeric, s int) 与输入相同 截断到小数点后s位 Oracle:
select trunc (42.4382, 2) from dual;
WuTong数据库:
select trunc (42.4382, 2);
42.43
abs(number) abs(int) int 函数用于计算数字的绝对值。 Oracle:
select abs(-1) from dual;
WuTong数据库:
select abs(-1);
1
power(number,number) power(int,int) int 函数用于计算数字的幂。 Oracle:
select power(2,3) from dual;
WuTong数据库:
select power(2,3);
8
mod(number,number) mod(int,int) int 取模运算,返回两个数值相除的余数。 Oracle:
select mod(5,2) from dual;
WuTong数据库:
select mod(5,2);
1
ceil(number) ceil(numeric) int 返回比输入值大的最小整数。 Oracle:
select ceil(1.22) from dual;
WuTong数据库:
select ceil(1.22);
2
floor(number) floor(numeric) int 返回比输入值小的最大整数。 Oracle:
select floor(1.22) from dual;
WuTong数据库:
select floor(1.22);
1
ln(number) ln(numeric) numeric 返回一个数字的对数值 Oracle:
select ln (2) from dual;
WuTong数据库:
select ln (2);
0.693147180559945
to_number(varchar2) to_number(text) numeric 将给出的字符转换为数字 Oracle:
select to_number(‘1999’) from dual;
WuTong数据库:
select to_number(‘1999’);
1999
exp(number) exp(numeric) numeric 返回一个数字e的n次方根 Oracle:
select exp(4) from dual;
WuTong数据库:
select exp(4);
54.5981500331442
sqrt(number) sqrt(numeric) numeric 返回数字n的根 Oracle:
select sqrt (4) from dual;
WuTong数据库:
select sqrt (4);
2
acos(number) acos(numeric) numeric 给出反余弦的值 Oracle:
select acos(-1) from dual;
WuTong数据库:
select acos(-1);
3.14159265358979
asin(number) asin(numeric) numeric 给出反正弦的值 Oracle::
select asin(0.5) from dual;
WuTong数据库:
select asin(0.5);
0.523598775598299
atan(number) atan(numeric) numeric 返回一个数字的反正切值 Oracle:
select atan(1) from dual;
WuTong数据库:
select atan(1);
0.785398163397448
cos(number) cos(numeric) numeric 返回一个给定数字的余弦 Oracle:
select cos(-3.1415927) from dual;
WuTong数据库:
select cos(-3.1415927);
-0.999999999999999
cosh(number) cosh(numeric) numeric 返回一个数字反余弦值 Oracle:
select cosh(1) from dual;
WuTong数据库:
select cosh(1);
1.54308063481524
cot(number) cot(numeric) numeric 返回一个数字反余弦值 Oracle:
select cot(1) from dual;
WuTong数据库:
select cot(1);
0.6420926159343306
sin(number) sin(numeric) numeric 返回一个数字的正弦值 Oracle:
select sin (2) from dual;
WuTong数据库:
select sin (2);
0.909297426825682
tan(number) tan(numeric) numeric 返回数字的正切值 Oracle:
select tan (2) from dual;
WuTong数据库:
select tan (2);
-2.18503986326152
tanh(number) tanh(numeric) numeric 返回数字n的双曲正切值 Oracle:
select tanh (2) from dual;
WuTong数据库:
select tanh (2);
0.964027580075817
log (b number, x number) log (b numeric, x numeric) numeric numeric 以b为底的对数 Oracle:
select log (2.0, 64.0) from dual;
WuTong数据库:
select log (2.0, 64.0)
6
atan2(number,number) atan2(numeric,numeric) numeric 字符串中的字节数 Oracle:
select atan2(1,2) from dual;
WuTong数据库:
select atan2(1,2);
0.463647609
sinh(number) atan2(numeric) numeric 字符串中的字节数 Oracle:
select sinh(1) from dual;
WuTong数据库:
select sinh(1);
1.175201194
nls_lower(varchar2) lower(text) numeric 将字符串所有字母小写。 Oracle:
select nls_lower(‘HELLO World’) from dual;
WuTong数据库:
select nls_lower(‘HELLO World’);
hello world
nls_upper(varchar2) upper(text) numeric 将字符串所有字母大写。 Oracle:
select nls_upper(‘HELLO World’) from dual;
WuTong数据库:
select nls_upper(‘HELLO World’);
HELLO WORLD
least(expression1,expression2…) least(expression1,expression2…) 和输入类型一致 取一组集合的最小值 Oracle:
SELECT LEAST(5,2,3) FROM DUAL;
WuTong数据库:
SELECT LEAST(5,2,3);
2
NANVL(number,number) NANVL(numeric,numeric) number/numeric 为NaN提供一个默认值 Oracle:
select NANVL(BINARY_FLOAT_NAN,1) from dual;
WuTong数据库:
select NANVL(‘NaN’,1) ;
1
SIGN(number) SIGN(numeric) int 为数学函数,确定一个数字的正负或零值
number < 0,返回 -1
number = 0,返回 0
number > 0,返回 1
number is NULL,返回 NULL
Oracle:
select sign(-8),sign(0),sign(8),sign(NULL) from dual;
WuTong数据库:
select sign(-8),sign(0),sign(8),sign(NULL);" | -1 | 0 | 1 | |
ROUND (number,number) ROUND (numeric,numeric) number 用于将数字四舍五入到指定的小数位 Oracle:
select round(1.234,2) from dual;
WuTong数据库:
select round(1.234,2);
1.23

3、格式化函数

Oracle函数 梧桐函数 返回类型 描述 例子 结果
to_char(123,‘xx’) to_hex(‘123’) text 将一个十进制构成的字符串转换为十六进制 Oracle:
select to_char(123,‘xx’) from dual ;
WuTong数据库:
select to_hex(‘123’) ;
to_char(timestamp, varchar2) to_char(timestamp, text) text 把时间戳转换成字符串 Oracle:
select to_char(sysdate, ‘HH12:MI:SS’) from dual;
WuTong数据库:
to_char(current_timestamp, ‘HH12:MI:SS’)
10:32:08
to_char(int) to_char(int, text) text 把整数转换成字符串 Oracle:
select to_char(125) from dual;
WuTong数据库:
to_char(125, ‘999’)
125
to_char(double precision, char) to_char(double precision, text) text 把实数/双精度数转换成字符串 Oracle:
select to_char(125.8, ‘999D9’) from dual;
WuTong数据库:
to_char(125.8::real, ‘999D9’)
125.8
to_char(number) to_char(numeric, text) text 把数字转换成字符串 Oracle:
select to_char(-125.8) from dual;
WuTong数据库:
to_char(-125.8, ‘999D99S’)
-125.8
to_date(char, char) to_date(text, text) date 把字符串转换成日期 Oracle:
select to_date(‘20240802’, ‘yyyymmdd’) from dual;
WuTong数据库:
select to_date(‘20240802’, ‘yyyymmdd’);
2024-8-2
to_timestamp(char, format) to_timestamp(text, format) date 函数用于将字符串转换为时间戳。 Oracle:
select to_timestamp(to_char(sysdate,‘YYYYMMDDHHMISS’) ,‘YYYYMMDDHHMISS’) from dual ;
WuTong数据库:
select to_timestamp(to_char(now(),‘YYYYMMDDHHMISS’) ,‘YYYYMMDDHHMISS’)
2024-09-13 02:43:02+08:00

4、日期/时间函数

Oracle函数 梧桐函数 返回类型 描述 例子 结果
trunc(sysdate) current_date date 当前的日期;见当前日期/时间 Oracle:
select trunc(sysdate) from dual;
WuTong数据库:
select current_date;
2024-9-10
current_date current_timestamp timestamp with time zone (当前事务开始时的)当前时间和日期;见?当前日期/时间。 Oracle:
select current_date from dual;
WuTong数据库:
select current_timestamp();
2024-9-10 11:15:07
sysdate current_timestamp timestamp with time zone (当前事务开始时的)当前时间和日期;见?当前日期/时间 Oracle:
select sysdate from dual;
WuTong数据库:
select radianscurrent_timestamp;
2024-9-10 11:15:07
add_months add_months date 函数用于在日期上添加指定的月数。 Oracle:
select add_months(sysdate,3) from dual;
WuTong数据库:
select add_months(now(),3);
2024-12-01 10:54:01
months_between months_between int 函数用于计算两个日期之间的月数。 Oracle:
select months_between(add_months(sysdate,3),sysdate) from dual;
WuTong数据库:
select months_between (add_months(now(),3),now()::date);
3
last_day last_day date 返回日期的最后一天 Oracle:
select last_day(to_date(‘202407’,‘yyyy-mm’)) from dual ;
WuTong数据库::
select last_day(to_date(‘202407’,‘yyyymm’)) ;
2024-7-31
next_day next_day date 给出日期date和星期x之后计算下一个星期的日期 Oracle:
select next_day(sysdate,3) from dual ;
WuTong数据库::
select next_day(now()::date,3);
2024-9-17 10:57:39
trunc(sysdate, ‘mm’) trunc(now(), ‘mm’) date 当月第一天 Oracle:
select trunc(sysdate, ‘mm’) from dual;
WuTong数据库:
select trunc(now(), ‘mm’);
2024-9-1
trunc(sysdate,‘yy’) trunc(now(),‘yy’) date 当年第一天 Oracle:
select trunc(sysdate,‘yy’) from dual ;
WuTong数据库:
select trunc(now(),‘yy’);
2024-1-1
trunc(sysdate,‘d’) trunc(now(),‘d’) date 当前星期的第一天 Oracle:
select trunc(sysdate,‘d’) from dual ;
WuTong数据库:
select trunc(now(),‘d’);
2024-9-8
trunc(sysdate,‘IW’) trunc(now(),‘IW’) date 当前星期的第一天 Oracle:
select trunc(sysdate,‘IW’) from dual;
WuTong数据库:
select trunc(now(),‘IW’);
2024-9-9
CURRENT_DATE CURRENT_TIMESTAMP(0) date 返回当前会话时区中的当前时间 Oracle:
select CURRENT_DATE from dual;
WuTong数据库:
select CURRENT_TIMESTAMP(0);
2024/9/14 15:43
EXTRACT(field from datetime) EXTRACT(field from datetime) int 用于从指定日期或时间中提取特定值,比如 年、月、日、小时等 Oracle:
select extract(month from current_date) from dual;
WuTong数据库:
select extract(month from CURRENT_TIMESTAMP(0));
9
NEW_TIME(date,timezone1,timezone2) timezone(timezone1,date AT TIME ZONE timezone2) date 将日期从指定时区转为另一个指定时区日期 Oracle:
select current_date,new_time(current_date,‘EST’,‘ADT’) from dual;
WuTong数据库:
select CURRENT_TIMESTAMP(0),timezone(‘EST’,CURRENT_TIMESTAMP(0) AT TIME ZONE ‘ADT’);
| 2024-9-14 16:26:54 | 2024-9-14 18:26:54 |
SYSTIMESTAMP now() timestamp 获取当前系统的时间戳,包含日期、时间、时区信息 Oracle:
select SYSTIMESTAMP from dual;
WuTong数据库:
select now();
2024-09-14 16:55:46.296478+08
LOCALTIMESTAMP LOCALTIMESTAMP timestamp 返回当前会话的日期和时间 Oracle:
SELECT LOCALTIMESTAMP FROM DUAL;
WuTong数据库:
SELECT LOCALTIMESTAMP ;
Oracle:
2024-09-18 10:00:09.911962
WuTong数据库:
18-9月 -24 09.59.52.644082 上午

5、序列函数

Oracle函数 梧桐函数 返回类型 描述 例子 结果
nextval nextval(regclass) bigint 递增序列并返回新值 Oracle:
select sequence.nextval from dual ;
WuTong数据库:
select nextval(‘sequence’);
1

6、通用聚合函数

Oracle函数 梧桐函数 返回类型 描述 例子
count(expressio) count(expressio) int 函数用来计算某个表或某个查询语句返回的结果集中的行数。 Oracle:
select count(1) from table1;
WuTong数据库:
select count(1) from table1 ;
sum(expressio) sum(expressio) int 函数用来计算某个表或某个查询语句返回的结果集中某个列的数值之和。 Oracle:
select sum(coumn1) from table1;
WuTong数据库:
select sum(coumn1) from table1 ;
avg(expressio) avg(expressio) int all表示对所有的值求平均值,distinct只对不同的值求平均值 Oracle:
select coumn2,avg(coumn1) from table1 group by coumn2;
WuTong数据库:
select coumn2,avg(coumn1) from table1 group by coumn2;
max(expressio) max(expressio) int 用来计算某个表或某个查询语句返回的结果集中某个列的数值最大值 Oracle:
select max(coumn1) from table1;
WuTong数据库:
select max(coumn1) from table1 ;
min(expressio) min(expressio) int 用来计算某个表或某个查询语句返回的结果集中某个列的数值最小值。 Oracle:
select min(coumn1) from table1;
WuTong数据库:
select min(coumn1) from table1 ;
rollup(expressio) rollup(expressio) int 是GROUP BY子句的一种扩展,可以为每个分组返回小计记录以及为所有分组返回总计记录。 Oracle:
Select column1 ,count(1) from table1 group by rollup(column1);
WuTong数据库:
Select column1 ,count(1) from table1 group by rollup(column1);
cube(expressio) cube(expressio) int 是GROUP BY子句的一种扩展,可以返回每一个列组合的小计记录,同时在末尾加上总计记录。 Oracle:
Select column1 ,count(1) from table1 group by cube(column1);
WuTong数据库:
Select column1 ,count(1) from table1 group by cube(column1);

7、系统信息函数

Oracle函数 梧桐函数 返回类型 描述 例子
v$instance current_database() name 当前数据库的名字 Oracle:
select instance_name from gv$instance;
WuTong数据库:
select current_database();
user current_schema() name 当前模式的名字 Oracle:
select user from dual;
WuTong数据库:
select current_schema();
user current_user() name 当前执行环境下的用户名 Oracle:
select user from dual;
WuTong数据库:
select current_user();
user user name 等价于 current_user Oracle:
select user from dual;
WuTong数据库:
select user();
v$instance version() text 数据库的版本信息 Oracle:
select version from v$instance;
WuTong数据库:
select version();

8、其他

Oracle函数 梧桐函数 返回类型 描述 例子 结果
minus except 集合 比较两个结果集的差异 Oracle:
select column from table1 minus select column from table2;
WuTong数据库:
select column from table1 except select column from table2;
regexp_like regexp_like 集合 通常进行模糊匹配,和用法like一样。 Oracle:
select * from masadw.tb_dic_area_code where regexp_like(area_code ,‘3[0-7][0-2]’);
WuTong数据库:
select * from masadw.tb_dic_area_code where regexp_like(area_code ,‘3[0-7][0-2]’);
370
371
372
regexp_instr regexp_instr int 使用正则表达式来指定返回串的起点和终点。 Oracle:
select regexp_instr(‘Thomas’,‘om’) from dual;
WuTong数据库:
select regexp_instr(‘Thomas’,‘om’);
3
rownum limit 集合 用法1:
限制查询结果集展示条数
Oracle:
select * from table1 where rownum < 2;
WuTong数据库:
select * from table1 limit 2;
rownum row_number() over() int 用法2:
生成行号。
Oracle:
select rownum from table1;
WuTong数据库:
select row_number() over() from table1;
nullif(int,int) nullif(int,int) int 值相等返空,否则返回第一个值。 Oracle:
select nullif(1,2) from dual;
WuTong数据库:
select nullif(1,2);
1
coalesce(expression,expression,expression) coalesce(expression,expression,expression) int 返回列表中第一个非空表达式。 Oracle:
select coalesce(null,2,210) from dual;
WuTong数据库:
select coalesce(null,2,2
10);
2
nvl2(varchar2,varchar2,varchar2) nvl2(text,text,text) text 如果参数1不为空,显示参数2,否则显示参数3。 Oracle:
select nvl2(null,‘1’,‘2’) from dual;
WuTong数据库:
select nvl2(null,‘1’,‘2’);
2
regexp_substr regexp_split_to_array text 匹配字符。 Oracle:
select regexp_substr(‘122136’,‘22’) from dual;
WuTong数据库:
select (regexp_split_to_array(‘122136’,’[^0-9]+’))[22];
merge into update& insert boolean 批量更新或插入数据。 Oracle:
merge into t1
using (select id,name from t2) t2
on ( t1.id=t2.id)
when matched then update set t1.name= t2.name
when not matched then insert (id,name) values (t2.id,t2.name);
WuTong数据库:
update t1 set name= t2.name from t2 where t1.id=t2.id;
insert into t1 select t2.id,t2.name from t2 left join t1 on t1.id=t2.id where t1.id is null;
DECODE(exp,value1,result1,value2,result2,…,default) DECODE(exp,value1,result1,value2,result2,…,default) 根据一系列条件返回不同的结果,如果条件都不满足,返回default值。 Oracle:
select DECODE(1+2,3,‘c’,4,‘d’,‘e’),DECODE(1+4,3,‘c’,4,‘d’,‘e’) from dual;
WuTong数据库:
select DECODE(1+2,3,‘c’,4,‘d’,‘e’),DECODE(1+4,3,‘c’,4,‘d’,‘e’);
| c | e |
ORA_HASH() hashtext() 哈希值 计算给定表达式的哈希值 Oracle:
select ora_hash(‘hello’) from dual;
WuTong数据库:
select hashtext(‘hello’); "
每个数据库函数计算哈希值方式不同,返回值不同。
WIDTH_BUCKET(expr,min_value,max_value,num_buckect) WIDTH_BUCKET(expr,min_value,max_value,num_buckect) int 取值是否在分组范围内,小于分组范围返回0 Oracle:
select width_bucket(100, 100, 500, 5) FROM DUAL;
select width_bucket(200, 100, 500, 5) FROM DUAL;
select width_bucket(300, 100, 500, 5) FROM DUAL;
WuTong数据库:
select width_bucket(100, 100, 500, 5) ;
select width_bucket(200, 100, 500, 5) ;
select width_bucket(300, 100, 500, 5) ;
1
2
3

9、元数据

ORACLE元数据 梧桐函数元数据 元数据作用
all_tables pg_tables 查询所有的表
dba_users pg_user 查询所有用户
dba_views pg_views 查询数据库所有视图
dba_roles pg_roles 查询数据库所有角色
all_tab_partitions 查询所有分区
gv$sessions pg_stat_activity_global 查询数据库当前所有会话
all_tab_columns dba_tab_columns 查询所有表字段及来字段类型
最后修改时间:2024-11-26 09:46:09
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论