核心功能
Oracle兼容性
AntDB 与Oracle数据库高度兼容,使得企业现有的基于Oracle数据库开发的应用程序无需做任何修改或只做少量的修改便可以运行在AntDB平台之上,由此降低了程序迁移的风险,减少了重写应用的成本,从而实现高效快捷的应用迁移。
AntDB与Oracle数据库的兼容性包括:Oracle语法兼容、函数兼容、系统表/视图兼容、存储过程和触发器兼容、数据类型兼容、 OCI和JDBC调用接口兼容、管理包兼容、 rowid/rownum和dual虚表等。基于高度的兼容特性,可以实现AntDB和Oracle的异构数据库容灾实现上线初期两套数据库并行运行一段时间。
AntDB支持使用oracle兼容模式进行数据库访问,支持服务器级别、会话级别和语句级别来切换兼容开关。
用户只需在JDBC的连接URL中增加grammar=oracle参数设置,即可通过JDBC使用oracle兼容模式进行应用开发。
下面简要列出AntDB语法与oracle语法对比:
1、数据类型对比:
| Oracle | AntDB | PostgreSQL |
|---|---|---|
| varchar2 | varchar2 | varchar |
| char(n) | char(n) | char(n) |
| date(日期) | date(日期) | timestamp(时间日期型)、date(日期)、time(时间) |
| number(n) | number(n) | smallint、int、bigint |
| number(p,n) | number(p,n) | numeric(p,n)(低效)、float(高效) |
| clob | clob | text |
| blob | blob | bytea |
| rownum | rownum | 无 |
| rowid | rowid | ctid |
2、常用函数对比
| 函数名称 | Oracle | AntDB | PostgreSQL |
|---|---|---|---|
| ABS | 支持 | 支持 | 支持 |
| ACOS | 支持 | 支持 | 支持 |
| ASIN | 支持 | 支持 | 支持 |
| ATAN | 支持 | 支持 | 支持 |
| ATAN2 | 支持 | 支持 | 支持 |
| BITAND | 支持 | 支持 | 支持 |
| CEIL | 支持 | 支持 | 支持 |
| COS | 支持 | 支持 | 支持 |
| COSH | 支持 | 支持 | 支持 |
| EXP | 支持 | 支持 | 支持 |
| FLOOR | 支持 | 支持 | 支持 |
| LN | 支持 | 支持 | 支持 |
| LOG | 支持 | 支持 | 支持 |
| MOD | 支持 | 支持 | 支持 |
| NANVL | 支持 | 支持 | 扩展支持 |
| POWER | 支持 | 支持 | 支持 |
| ROUND (number) | 支持 | 支持 | 支持 |
| SIGN | 支持 | 支持 | 支持 |
| SIN | 支持 | 支持 | 支持 |
| SINH | 支持 | 支持 | 扩展支持 |
| SQRT | 支持 | 支持 | 支持 |
| TAN | 支持 | 支持 | 支持 |
| TANH | 支持 | 支持 | 扩展支持 |
| TRUNC (number) | 支持 | 支持 | 支持 |
| CHR | 支持 | 支持 | 支持 |
| CONCAT | 支持 | 支持 | 支持 |
| INITCAP | 支持 | 支持 | 支持 |
| LOWER | 支持 | 支持 | 支持 |
| LPAD | 支持 | 支持 | 支持 |
| LTRIM | 支持 | 支持 | 支持 |
| REGEXP_REPLACE | 支持 | 支持 | 支持 |
| REGEXP_SUBSTR | 支持 | 支持 | 不支持 |
| REPLACE | 支持 | 支持 | 支持 |
| RPAD | 支持 | 支持 | 支持 |
| RTRIM | 支持 | 支持 | 支持 |
| SUBSTR | 支持 | 支持 | 支持 |
| TRANSLATE | 支持 | 支持 | 支持 |
| TREAT | 支持 | 不支持 | 不支持 |
| TRIM | 支持 | 支持 | 支持 |
| UPPER | 支持 | 支持 | 支持 |
| ASCII | 支持 | 支持 | 支持 |
| INSTR | 支持 | 支持 | 扩展支持 |
| LENGTH | 支持 | 支持 | 支持 |
| REGEXP_INSTR | 支持 | 支持 | 不支持 |
| REVERSE | 支持 | 支持 | 支持 |
| ADD_MONTHS | 支持 | 支持 | 扩展支持 |
| CURRENT_DATE | 支持 | 支持 | 支持 |
| CURRENT_TIMESTAMP | 支持 | 支持 | 支持 |
| EXTRACT (datetime) | 支持 | 支持 | 支持 |
| LAST_DAY | 支持 | 支持 | 扩展支持 |
| LOCALTIMESTAMP | 支持 | 不支持 关键字 | 不支持 关键字 |
| MONTHS_BETWEEN | 支持 | 支持 | 扩展支持 |
| NEW_TIME | 支持 | 支持 | 不支持 |
| NEXT_DAY | 支持 | 支持 | 扩展支持 |
| ROUND (date) | 支持 | 支持 | 不支持 |
| SYSDATE | 支持 | 支持 | 不支持 |
| SYSTIMESTAMP | 支持 | 支持 | 不支持 |
| TO_CHAR (datetime) | 支持 | 支持 | 支持 |
| TO_TIMESTAMP | 支持 | 支持 | 支持 |
| TRUNC (date) | 支持 | 支持 | 支持 |
| DECODE | 支持 | 支持 | 扩展支持 |
| DUMP | 支持 | 支持 | 扩展支持 |
| COALESCE | 支持 | 支持 | 支持 |
| LNNVL | 支持 | 支持 | 扩展支持 |
| NANVL | 支持 | 支持 | 扩展支持 |
| NULLIF | 支持 | 支持 | 支持 |
| NVL | 支持 | 支持 | 扩展支持 |
| NVL2 | 支持 | 支持 | 扩展支持 |
| GREATEST | 支持 | 支持 | 支持 |
| LEAST | 支持 | 支持 | 支持 |
| 类型转换函数 | 支持 | 支持 | 支持 |
| CONVERT | 支持 | 支持 | 扩展支持 |
| TO_CHAR (character) | 支持 | 支持 | 支持 |
| TO_CHAR (datetime) | 支持 | 支持 | 支持 |
| TO_CHAR (number) | 支持 | 支持 | 支持 |
| TO_DATE | 支持 | 支持 | 支持 |
| TO_NUMBER | 支持 | 支持 | 支持 |
| TO_TIMESTAMP | 支持 | 支持 | 支持 |
| AVG * | 支持 | 支持 | 支持 |
| COUNT * | 支持 | 支持 | 支持 |
| DENSE_RANK | 支持 | 支持 | 支持 |
| FIRST | 支持 | 不支持 | 不支持 |
| FIRST_VALUE * | 支持 | 支持 | 支持 |
| LAG | 支持 | 支持 | 支持 |
| LAST | 支持 | 不支持 | 不支持 |
| LAST_VALUE * | 支持 | 支持 | 支持 |
| LEAD | 支持 | 支持 | 支持 |
| MAX * | 支持 | 支持 | 支持 |
| MIN * | 支持 | 支持 | 支持 |
| RANK | 支持 | 支持 | 支持 |
| ROW_NUMBER | 支持 | 支持 | 支持 |
| SUM * | 支持 | 支持 | 支持 |
3、运算符
| 运算符名称 | Oracle | AntDB | PostgreSQL |
|---|---|---|---|
| + | 支持 | 支持 | 支持 |
| - | 支持 | 支持 | 支持 |
| * | 支持 | 支持 | 支持 |
| / | 支持 | 支持 | 支持 |
| and | 支持 | 支持 | 支持 |
| or | 支持 | 支持 | 支持 |
| not | 支持 | 支持 | 支持 |
| != | 支持 | 支持 | 支持 |
| <> | 支持 | 支持 | 支持 |
| ^= | 支持 | 不支持 | 不支持 |
| = | 支持 | 支持 | 支持 |
| < | 支持 | 支持 | 支持 |
| > | 支持 | 支持 | 支持 |
| ⇐ | 支持 | 支持 | 支持 |
| >= | 支持 | 支持 | 支持 |
| is (not) null | 支持 | 支持 | 支持 |
| (not) between and | 支持 | 支持 | 支持 |
| (not)in | 支持 | 支持 | 支持 |
| all/any | 支持 | 支持 | 支持 |
| exists | 支持 | 支持 | 支持 |
| like | 支持 | 支持 | 支持 |
| ll | 支持 | 支持 | 支持 |
| union (all) | 支持 | 支持 | 支持 |
| minus | 支持 | 支持 | 支持 |
| intersect | 支持 | 不支持 | 支持 |
4、查询关键字
| 名称 | Oracle | AntDB | PostgreSQL |
|---|---|---|---|
| distinct | 支持 | 支持 | 支持 |
| unique | 支持 | 不支持 | 不支持 |
| group by | 支持 | 支持 | 支持 |
| having | 支持 | 支持 | 支持 |
| order by | 支持 | 支持 | 支持 |
| connect by | 支持 | 支持 | 不支持 |
| cte | 支持 | 支持 | 支持 |
| case when | 支持 | 支持 | 支持 |
| insert all into | 支持 | 不支持( insert into values替代) | 不支持 ( insert into values替代) |
| merge into | 支持 | 不支持( upsert替代) | 不支持 ( upsert替代) |
5、表连接
| 表连接名称 | Oracle | AntDB | PostgreSQL |
|---|---|---|---|
| (inner) join | 支持 | 支持 | 支持 |
| from tableA,tableB | 支持 | 支持 | 支持 |
| left (outer) join | 支持 | 支持 | 支持 |
| right (outer) join | 支持 | 支持 | 支持 |
| full (outer) join | 支持 | 支持 | 支持 |
| (+) | 支持 | 支持 | 不支持 |
6、其他
| 名称 | Oracle | AntDB | PostgreSQL |
|---|---|---|---|
| declare | 支持 | 支持 | 支持 |
| exception | 支持 | 支持 | 支持 |
| cursor | 支持 | 支持 | 支持 |
| create type | 支持 | 支持 | 支持 |
| alter type | 支持 | 支持 | 支持 |
| drop type | 支持 | 支持 | 支持 |
| 隐式转换 | 支持 | 支持 | 不支持 |
| oracle别名 | 支持 | 支持 | 不支持 |
| Oracle 同义词 | 支持 | 支持 | 不支持 |
| %type | 支持 | 支持 | 支持 |
| %rowtype | 支持 | 支持 | 支持 |
| % | 支持 | 支持 | 支持 |
| _ | 支持 | 支持 | 支持 |
| dual | 支持 | 支持 | 不支持 |
AntDB数据库始于2008年,在运营商的核心系统上,为全国24个省份的10亿多用户提供在线服务,具备高性能、弹性扩展、高可靠等产品特性,峰值每秒可处理百万笔电信核心交易,保障系统持续稳定运行近十年,并在通信、金融、交通、能源、物联网等行业成功商用落地。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




