YashanDB在SQL语法、表达式运算、FILTER CONDITION、数据类型、内置函数、系统视图和PL等基本功能上均与Oracle数据库兼容,数据库管理和开发人员不需要花费大量的时间去学习新知识,在已交付特性上直接查阅Oracle相关文档,也可流畅地操作使用YashanDB,实现从Oracle数据库到YashanDB的平滑迁移。
在其他某些功能上YashanDB会与Oracle数据库的表现有所差异或者暂时没有进行兼容,这可能是因为:
本文将从如下方面具体说明,在单机部署和行式存储模式下,YashanDB对Oracle数据库的兼容情况:
YashanDB支持Oracle数据库中主流的SQL语法,其他少数因功能性缺失导致的不兼容将报语法不支持错误,此时应联系我们的技术支持提供变通方案。
(1)DML类
SELECT
INSERT
UPDATE
DELETE
(2)DDL类
YashanDB兼容Oracle数据库大部分的对象及对象管理操作,包括:
(3)HINT
YashanDB支持使用HINT并采用了Oracle的HINT语法,可实现join方式、join order、table scan、index scan等的指定能力。
YashanDB包含了主流的计算框架实现对表达式的运算,此外,Oracle本身由于没有布尔类型(只在其PL中支持)需要使用其他数据类型替代运算,YashanDB则实现了直接的布尔型表达式运算。详见下表:
表达式运算类型 | YashanDB | Oracle数据库 |
---|---|---|
二元运算加法 | 支持 | 支持 |
二元运算减法 | 支持 | 支持 |
二元运算乘法 | 支持 | 支持 |
二元运算除法 | 支持 | 支持 |
二元运算取余 | 支持 | 支持 |
一元运算取反 | 支持 | 支持 |
位运算与 | 支持 | 支持 |
位运算或 | 支持 | 支持 |
位运算异或 | 支持 | 支持 |
Boolean运算 | 支持 | 不支持 |
YashanDB的FILTER CONDITON类型完全兼容Oracle数据库的FILTER CONDITON类型。详见下表:
FILTER CONDITON | YashanDB | Oracle数据库 |
---|---|---|
ALL | 支持 | 支持 |
ANY | 支持 | 支持 |
AND | 支持 | 支持 |
EQUAL | 支持 | 支持 |
NOT EQUAL | 支持 | 支持 |
EXISTS | 支持 | 支持 |
NOT EXISTS | 支持 | 支持 |
GREAT EQUAL | 支持 | 支持 |
GREATE | 支持 | 支持 |
IN | 支持 | 支持 |
NOT IN | 支持 | 支持 |
IS NULL | 支持 | 支持 |
IS NOT NULL | 支持 | 支持 |
LESS | 支持 | 支持 |
LESS EQUAL | 支持 | 支持 |
LIKE | 支持 | 支持 |
NOT LIKE | 支持 | 支持 |
REG LIKE | 支持 | 支持 |
NOT REG LIKE | 支持 | 支持 |
OR | 支持 | 支持 |
SOME | 支持 | 支持 |
YashanDB目前包含了27种数据类型,与Oracle数据库对比情况见下表:
数据类型 | YashanDB | Oracle数据库 |
---|---|---|
BOOLEAN | 支持 | 不支持 |
TINYINT | 支持 | 不支持 |
SMALLINT | 支持 | 支持 |
INTEGER | 支持 | 支持 |
BIGINT | 支持 | 不支持 |
FLOAT | 支持 | 支持 |
DOUBLE | 支持 | 支持 |
NUMBER | 支持 | 支持 |
DATE | 支持 | 支持 |
TIMESTAMP | 支持 | 支持 |
TIME | 支持 | 不支持 |
INTERVAL YEAR TO MONTH | 支持 | 支持 |
INTERVAL DAY TO SECOND | 支持 | 支持 |
CHAR | 支持 | 支持 |
VARCHAR | 支持 | 支持 |
NCHAR | 支持 | 支持 |
NVARCHAR | 支持 | 支持 |
ST_GEOMETRY | 支持 | 支持 |
RAW | 支持 | 支持 |
CLOB | 支持 | 支持 |
NCLOB | 支持 | 支持 |
BLOB | 支持 | 支持 |
BIT | 支持 | 不支持 |
ROWID | 支持 | 支持 |
UROWID | 支持 | 支持 |
CURSOR | 支持 | 支持 |
JSON | 支持 | 支持 |
XMLTYPE | 支持 | 支持 |
Note: YashanDB的大对象(CLOB/BLOB)数据类型有较强的存储能力,但大对象存取性能不推荐在复杂场景下使用。 YashanDB的XMLTYPE数据类型底层以CLOB进行存储,与Oracle存储方式不同,在函数调用时可能存在差异。
YashanDB目前实现了超过120个内置函数
与Oracle数据库的内置函数对比情况见下表:
函数类型 | 支持函数列表 | YashanDB | Oracle数据库 |
---|---|---|---|
数学运算函数 | ABS,ACOS,ASIN,ATAN,ATAN2,COS,COT, CEIL,DIV,EXP,FLOOR,LOG,LN,MOD,PI,POW,POWER,ROUND,SIGN,SIN,SINH,STDDEV,STDDEV_POP,STDDEV_SAMP,SQRT,TAN,TANH,TRUNC,VARIANCE,VAR_POP,VAR_SAMP,…… | 支持 | 支持 |
字符处理函数 | ASCII,CHR,CONCAT,INITCAP,INSTR,INSTRB,LEFT,LENGTH,LENGTH2,LOWER,LPAD,LTRIM,NLSSORT,POSITION,REPLACE,RIGHT,RPAD,RTRIM,SPLIT,STRPOS,SUBSTR,SUBSTRB,SOUNDEX,TRIM,TRANSLATE ... USING,UNISTR,UPPER,empty_LOB,…… | 支持 | 支持 |
正则匹配函数 | REGEXP_LIKE,REGEXP_COUNT,REGEXP_INSTR,REGEXP_REPLACE,REGEXP_SUBSTR,…… | 支持 | 支持 |
转换函数 | BIN_TO_NUM,CAST,NUMTODSINTERVAL,NUMTOYMINTERVAL,ROWIDTOCHAR,TRANSLATE,TO_CHAR,TO_DATE,TO_DSINTERVAL,TO_NUMBER,TO_TIMESTAMP,TO_YMINTERVAL,…… | 支持 | 支持 |
集合处理函数 | COALESCE,DECODE,GREATEST,LEAST,NVL,NVL2,…… | 支持 | 支持 |
聚集函数 | AVG,COUNT,GROUP_CONCAT,LISTAGG,MAX,MIN,SUM,MEDIAN,PERCENTILE_CONT,…… | 支持 | 支持 |
窗口函数 | AVG,COUNT,FIRST,FIRST_VALUE,LAST,LAST_VALUE,LEAD,MAX,SUM,RANK,ROW_NUMBER,…… | 支持 | 支持 |
系统函数 | SCN_TO_TIMESTAMP,TIMESTAMP_TO_SCN,USERENV,…… | 支持 | 支持 |
时间处理函数 | ADD_MONTHS,CURRENT_TIMESTAMP,EXTRACT,LAST_DAY,NOW,NEXT_DAY,OVERLAPS,…… | 支持 | 支持 |
条件处理函数 | IF,IFNULL,ISNULL,NULLIF | 支持 | 不支持 |
JSON处理函数 | JSON,JSON_ARRAY_GET,JSON_ARRAY_LENGTH,JSON_EXISTS,JSON_FORMAT,JSON_PARSE,JSON_QUERY,JSON_SERIALIZE,…… | 支持 | 支持 |
随机函数 | RANDOM | 支持 | 不支持 |
其他函数 | HEXTORAW,SQLCODE,SQLERRM,SYS_CONNECT_BY_PATH,…… | 支持 | 支持 |
YashanDB兼容了Oracle数据库大部分的PL功能,包括:
YashanDB兼容了Oracle数据库部分的内置高级包,包括:
高级包名称 |
---|
DBMS_AUDIT_MGMT |
DBMS_APPLICATION_INFO |
DBMS_CRYPTO |
DBMS_DESCRIBE |
DBMS_HM |
DBMS_IJOB |
DBMS_JOB |
DBMS_LOB |
DBMS_LOCK |
DBMS_METADATA |
DBMS_MVIEW |
DBMS_OUTPUT |
DBMS_RANDOM |
DBMS_RESOURCE_MANAGER |
DBMS_ROWID |
DBMS_SCHEDULER |
DBMS_SESSION |
DBMS_SQL |
DBMS_STANDARD |
DBMS_STATS |
DBMS_UTILITY |
DBMS_XA |
OWA_UTIL |
UTL_ENCODE |
UTL_FILE |
UTL_I18N |
UTL_RAW |
YashanDB兼容Oracle数据库的DBA视图清单如下:(ALL/USER视图兼容清单与DBA视图对应相同)
视图名称 |
---|
AUDITABLE_SYSTEM_ACTIONS |
AUDIT_UNIFIED_ENABLED_POLICIES |
AUDIT_UNIFIED_POLICIES |
COL |
DBA_ARGUMENTS |
DBA_AUDIT_MGMT_CLEANUP_JOBS |
DBA_AUDIT_MGMT_LAST_ARCH_TS |
DBA_COLL_TYPES |
DBA_COL_COMMENTS |
DBA_CONSTRAINTS |
DBA_CONS_COLUMNS |
DBA_DATA_FILES |
DBA_DB_LINKS |
DBA_DEPENDENCIES |
DBA_EXTERNAL_TABLES |
DBA_FREE_SPACE |
DBA_HISTOGRAMS |
DBA_INDEXES |
DBA_IND_COLUMNS |
DBA_IND_EXPRESSIONS |
DBA_IND_PARTITIONS |
DBA_IND_STATISTICS |
DBA_IND_SUBPARTITIONS |
DBA_JOBS |
DBA_LOBS |
DBA_LOB_PARTITIONS |
DBA_LOB_SUBPARTITIONS |
DBA_LOG_GROUPS |
DBA_MVIEWS |
DBA_NESTED_TABLES |
DBA_OBJECTS |
DBA_OUTLINES |
DBA_OUTLINE_HINTS |
DBA_PART_COL_STATISTICS |
DBA_PART_HISTOGRAMS |
DBA_PART_INDEXES |
DBA_PART_KEY_COLUMNS |
DBA_PART_TABLES |
DBA_PROCEDURES |
DBA_PROFILES |
DBA_RECYCLEBIN |
DBA_ROLES |
DBA_ROLE_PRIVS |
DBA_SCHEDULER_JOBS |
DBA_SEGMENTS |
DBA_SEQUENCES |
DBA_SOURCE |
DBA_SUBPARTITION_TEMPLATES |
DBA_SUBPART_KEY_COLUMNS |
DBA_SYNONYMS |
DBA_SYS_PRIVS |
DBA_TABLES |
DBA_TABLESPACES |
DBA_TAB_COLS |
DBA_TAB_COLUMNS |
DBA_TAB_COL_STATISTICS |
DBA_TAB_COMMENTS |
DBA_TAB_MODIFICATIONS |
DBA_TAB_PARTITIONS |
DBA_TAB_PRIVS |
DBA_TAB_STATISTICS |
DBA_TAB_STAT_PREFS |
DBA_TAB_SUBPARTITIONS |
DBA_TEMP_FILES |
DBA_TRIGGERS |
DBA_TRIGGER_COLS |
DBA_TRIGGER_ORDERING |
DBA_TYPES |
DBA_TYPE_ATTRS |
DBA_TYPE_METHODS |
DBA_USERS |
DBA_VIEWS |
UNIFIED_AUDIT_TRAIL |
YashanDB兼容Oracle数据库的动态视图清单如下:
视图名称 |
---|
V$2PC_PENDING |
V$ARCHIVE_DEST |
V$ARCHIVE_DEST_STATUS |
V$ARCHIVE_GAP |
V$ARCHIVED_LOG |
V$BUFFER_POOL |
V$BUFFER_POOL_STATISTICS |
V$CONTROLFILE |
V$DATABASE |
V$DATAFILE |
V$DIAG_INCIDENT |
V$DIAG_PROBLEM |
V$FIXED_TABLE |
V$FIXED_VIEW_DEFINITION |
V$HM_CHECK |
V$HM_CHECK_PARAM |
V$HM_FINDING |
V$HM_RUN |
V$INSTANCE |
V$LOCK |
V$LOCKED_OBJECT |
V$LOGFILE |
V$MYSTAT |
V$OPEN_CURSOR |
V$OSSTAT |
V$PARAMETER |
V$PQ_TQSTAT |
V$PROCESS |
V$PX_SESSION |
V$RECOVERY_PROGRESS |
V$RESERVED_WORDS |
V$ROLLBACK |
V$SEGMENT_STATISTICS |
V$SESS_TIME_MODEL |
V$SESSION |
V$SESSION_EVENT |
V$SESSION_WAIT |
V$SESSTAT |
V$SGA |
V$SGASTAT |
V$SQL |
V$SQL_BIND_CAPTURE |
V$SQL_PLAN |
V$SQL_PLAN_STATISTICS |
V$SQLAREA |
V$SQLSTATS |
V$SQLTEXT |
V$STATNAME |
V$SYSSTAT |
V$SYSTEM_EVENT |
V$SYSTEM_PARAMETER |
V$SYSTEM_WAIT_CLASS |
V$TABLESPACE |
V$TEMP_EXTENT_POOL |
V$TRANSACTION |
V$UNDOSTAT |
V$VERSION |
YashanDB支持如下字符集:
同时,YashanDB支持如下字符集排序方式:
YashanDB的SQL引擎兼容了Oracle数据库大部分的特性,包括:
权限管理
身份鉴别
审计
imp
exp
统计信息
YashanDB的统计信息体系兼容了Oracle数据库大部分的特性,包括:
表空间
可靠性
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文系转载,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。