ORACLE数据库转国产阿里OceanBase数据库

1.BLOB类型修改

将接口内oracle.sql.BLOB改为java.sql.Blob

2.REGEXP_LIKE 判断函数正则表达式中字符转义问题

OB的正则表达式使用的是标准的Linux模式,oracle是黑盒子,在处理部分转义符([]+)的时候,

Oracle无需使用转义符,OB务必使用转义符,加/转义处理,例如在regexp_like(t.xx,’^(+|[0-9]+)$’)改为regexp_like(t.xx,’^(/+|[0-9]+)$’)

3.REGEXP_LIKE函数结果布尔值判断兼容性问题

在Oracle中可以用if regexp_like(t.xx,’^(+|[0-9]+)$’) = false then end if;在OB中并不支持这样使用,可以用if regexp_like(t.xx,’^(+|[0-9]+)$’) then else end if解决兼容性问题

4.重建索引兼容性问题

在Oracle中,可以通过 alter index $indexName rebulid 来手动维护索引,但是在OB中并不支持rebuild这种写法

5.修改全局索引兼容性问题

在Oracle中,可以通过update index修改索引,在Oracle中可以通过update global index来实现

6.自动扩分区兼容性问题

自动扩分区有split和add两种方式,但是OB只支持add方式扩分区,例如ALTER TABLE CDRS.

CDRS_DTL_UNTRADE_HIS SPLIT PARTATION TMAX AT (‘2025-04-01’) INTO (PARTATION T20250401,PARTATION TMAX)修改为add扩分区方式

6.1OB不支持在有默认分区的情况下新增分区,首先将默认分区删掉

ALTER TABLE CDRS.CDRS_DTL_UNTRADE_HIS DROP PARTATION TMAX UPDATE GLOBAL INDEX

6.2添加新分区

ALTER TABLE CDRS.CDRS_DTL_UNTRADE_HIS ADD PARTATION T20250401 VALUSE LESS THAN(‘2025-04-01’);

6.3再将默认分区加回来

ALTER TABLE CDRS.CDRS_DTL_UNTRADE_HIS ADD PARTATION TMAX VALUSE LESS THAN(MAXVALUES);

7.V$MYSTAT 当前会话下资源信息使用统计视图兼容问题(临时)  

OB不支持V$MYSTAT视图的使用,可在OB中使用SELECT SYS_CONTEXT(‘USERENV’,’SID’) FROM DUAL 来替代   

8.V$SESSION 所有会话下资源信息使用统计视图(包括后台进程)兼容问题                                                                                                                                                                                                  

OB不支持V$SESSION视图的使用,可在OB中使用V$OB_PROCESSLIST 来替代   

你可能感兴趣的:(ORACLE数据库转国产阿里OceanBase数据库)