8.1. 发布记录
8.1.1. 版本发布 24.2.6
8.1.2. 版本发布 24.2.5
- 发布日期:2024-10-30
- 当前版本Oracle2PostgreSQL新增内容:
新增提交当前事务commit,将所有对数据的更改永久保存。具体请参考 提交当前事务 。
- 日志模块功能调整及优化:
移除配置项[unsiql.debug];新增配置项[unisql.log.level],用于设置日志级别;新增配置项[unisql.log.enable],用于设置是否开启日志功能,具体配置请参考 unisql.conf文件说明 ;
支持慢SQL及大SQL告警日志打印,用户可以通过配置对应的阈值打印相关告警日志,新增配置项包括告警日志开关:[unisql.slowsql.enable],大SQL阈值配置:[unisql.slowsql.length],慢SQL阈值配置:[unisql.slowsql.duration],具体配置参考: unisql.conf文件说明 ;
支持SQL透传日志打印,对于透传的SQL,统一SQL会打印debug级别的日志信息标识此SQL为透传,透传功能可参考: SQL透传 ;
支持SQL转换关联配置项日志打印,当一个SQL语法转换跟unisql.conf中的配置有关时,会打印debug级别的日志信息标识此SQL的转换配置,具体配置请参考 unisql.conf文件说明 ;
- 配置文件热加载功能:
支持配置文件热加载,当配置文件发生变化时,统一SQL会自动重新加载配置文件,并应用新的配置,再此过程中不需要重启应用服务。详细介绍可参考 配置信息热加载 ;
8.1.3. 版本发布 24.2.4
- 发布日期:2024-10-15
- 当前版本MySQL2GoldenDB-MySQL新增内容:
新增支持replace into 语法,具体请参考 REPLACE INTO ,需要配合参数unisql.transform.replace.into使用 ,具体配置请参考 unisql.conf文件说明 。
- 当前版本Oracle2PostgreSQL新增内容:
新增支持TRUNC函数第二个参数fmt值为DAY、DY、D、IW的转化。具体请参考 TRUNC 。
8.1.4. 版本发布 24.2.3
- 发布日期:2024-09-30
- 当前版本Mysql2GaussDB-Oracle新增内容:
新增支持DROP DATABASE [IF EXISTS]语法。具体请参考 删除库 。
新增支持通过配置,查询列为空的转化。具体请参考 空值判断。
新增支持ddl中对于列约束为 not null default ‘’ 时,允许用户设置是否去除 not null。去除 not null 需要配置unisql.drop.notnull.for.default.empty=1,具体配置请参考 unisql.conf文件说明 。
新增支持查询列值时忽略大小写,允许用户设置哪些表的哪些列在查询时忽略大小写,该功能通过配置项unisql.table.column.upper.case实现,且配置项unisql.table.column.upper.case.print.sql.switch必须设置为1,具体配置请参考 unisql.conf文件说明 。
- 当前版本Oracle2PostgreSQL新增内容:
新增支持UPDATE TABLE SET (XX,XXX)多列语法。具体请参考 更新多列 。
新增支持PARTITION关键字作为表名、列名的语法。具体请参考 创建表,包含临时表等 。
新增支持number数据类型兼容老版本转换,通过配置项开启是否将number转为int。需要配置unisql.datatype.number.replace.integer = 1; 具体配置请参考 unisql.conf文件说明 。
- 当前版本新增自动版本检测机制:
当统一SQL Go 模块链接库版本号和 sql-convert-runtime 版本号不一致时,sql-convert-runtime初始化时将返回[统一SQL版本号错误]相关的提示信息。
- 当前版本Oracle2OceanBase-MySQL变更内容:
支持sysdate+/-日期量功能,日期加法将会转换为DATE_ADD函数,日期减法将会转换为DATE_SUB函数
bugfix:修复to_number函数内嵌to_char(sysdate+日期量,’yyyymmdd’)时精度不准确的问题
8.1.5. 版本发布 24.2.1.1
- 发布日期:2024-09-13
- 当前版本Oracle2GaussDB-Oracle新增内容:
新增支持MERGE INTO table_name [ [ AS ] alias ] USING ( VALUES ( expression [, …] ) ) [ AS ] alias ( column[, …] ) ON ( condition ) …语法。具体请参考 合并插入 。
8.1.6. 版本发布 24.2.1
- 发布日期:2024-09-05
- 当前版本MySQL2GaussDB-Oracle新增内容:
新增支持mediumint数据类型,统一SQL将mediumint类型转换为int类型。具体请参考 转换为 GaussDB-Oracle 。
新增支持varchar(n)数据类型,统一SQL将varchar(n)类型转换为nvarchar2(3*n)类型。具体请参考 转换为 GaussDB-Oracle 。
新增支持通过配置指定字段转换后的数据类型,例如:table_mysql表的column_mysql字段原来的数据类型为mediumblob,统一SQL默认转换为bytea,可以通过配置项指定该字段转换后的数据类型为text,需要配置unisql.table.column.replace.datatype=table_mysql:column_mysql:text; 具体配置请参考 unisql.conf文件说明 。
新增支持
alter table xxx auto_increment=number
语法,用于更改自增列当前值。具体请参考 修改自增列的起始值 。新增支持
alter table add column [if not exists] ...
语法,统一SQL转换后将 [if not exists] 去掉。具体请参考 修改普通表 。新增支持函数
convert(column using 编码)
用法,编码支持范围为:UTF8,GBK。具体请参考 CONVERT 。新增支持
select xxx from xxx where xxx group by xxx order by xxx
语法中查询列包含聚合函数且该聚合函数在排序列中。注:查询列聚合函数必须带有别名。新增支持建表语句中
主键
,唯一索引
,普通索引
,普通键
带有注释信息。具体请参考 创建普通表 。新增支持元数据缓存中存储目标库表字段数据类型信息。
新增支持定时拉取目标库元数据缓存信息。
8.1.7. 版本发布 24.1.8
- 发布日期:2024-08-22
- 当前版本Oracle2GaussDB-Oracle新增内容:
新增支持create table xxx as select语法拷贝表结构并保留列的not null约束。
新增支持delete from 语法在delete后使用表别名。
新增支持(+)外连接语法。
新增支持sql中除法运算分母为0的情况。
新增Mysql2GaussDB-Oracle支持。
本版本开始配置文件unisql.conf所在目录名称由unisqlconf改为config。
8.1.8. 版本发布 24.1.6.0
- 发布日期:2024-07-31
- 当前版本Oracle2GaussDB-Oracle新增内容:
- 新增支持 PERCENTILE_CONT(PERCENTILE) WITHIN GROUP (ORDER BY COLUMN [ DESC | ASC ]) OVER (PARTITION BY COLUMN)语法。
支持PERCENTILE_CONT WITHIN GROUP 后带OVER的解析和转化。
- 新增支持SQL中||、!=后直接跟正负数的场景。
GAUSSDB中||、!=后不可直接跟正负数,统一SQL兼容此类场景。
- 新增支持源SQL字符为GBK编码。
支持源SQL使用GBK编码(C语言开发的应用),需配合参数unisql.charset使用。
- 新增支持自定义USER_USERS视图。
创建自定义USER_USERS视图兼容使用ORACLE中同名视图的场景。
- 新增支持通过配置指定自有函数所在SCHEMA。
支持统一SQL的自定义数据库对象创建在指定SCHEMA下,需配合参数unisql.schema使用。
- 新增支持ALTER TABLE [ SCHEMA. ] TABLE_NAME MODIFY [(] COLUMN_NAME DEFAULT EXPRESSION [,COLUMN_NAME DEFAULT EXPRESSION[,…])]语法。
支持修改列默认值的语法。
- 新增支持ALTER TABLE [SCHEMA.]TABLE_NAME MOVE TABLESPACE TABLESPACE_NAME语法。
支持此语法的解析,注意由于GAUSSDB-ORACLE中的表空间功能不完善,统一SQL在进行转换时,将该语句默认转换成SELECT 1 配合参数unisql.global.replace.sql使用。
- 新增支持UPDATE TABLE SET (XX,XXX)多列语法。
支持多列更新语法。
- 新增支持NVL函数第二个参数为空格。
-对于第二个参数为单个空格的情况,统一SQL转换时会在第一个参数外部嵌套一个TO_CHAR函数,解决GAUSS-ORACLE中的类型转换问题。
- 新增支持DECODE函数中参数类型不一致
GAUSSDB_ORACLE限制了DECODE函数中所有参数的类型需保持一致,统一SQL的配置参数:unisql.decode.parameters.funcnames 支持将DECODE函数的参数统一转化为TEXT类型,前提为DECODE的参数包含函数且函数名包含在本参数的配置内(多个函数名之间用英文逗号分割)。因浮点类型转化为TEXT会导致精度不一致问题,故本参数不适用DECODE函数中处理字段包含FLOAT、DOUBLE等浮点类型的场景。
- 新增支持ROWNUM解析。
支持ROWNUM在WHERE条件表达式中的解析。
- 新增支持INSERT ALL INTO语法。
支持INSERT ALL INTO语法解析并转化为WITH语句。
- 新增TO_DATE函数增强。
TO_DATE(ARGS)-TO_DATE(ARGS)在ORACLE中返回值为数字类型,在GAUSS-ORACLE中返回类型为INTERVAL,将补丁脚本中的自定义函数PUBLIC.TO_NUMBER打到目标库中支持此场景。
8.1.9. 版本发布 24.1.3.0
- 发布日期:2024-06-28
- 当前版本Oracle2TDSQL-PostgreSQL版Oracle模式新增内容:
- 新增支持REGEXP_INSTR、MEDIAN函数。
REGEXP_INSTR函数作用是返回正则表达式匹配值在源字符串中的位置。
MEDIAN用于返回一组数值的中值,即将一组数值排序后返回居于中间的数值。如果参数集合中包含偶数个数值,该函数将返回位于中间的两个数的平均值。
- 新增支持DROP TABLE CASCADE CONSTRAINTS语法。
如果当前表的主键或唯一键被其他表引用,删除当前表的同时会删除其他表引用的约束。
- 新增支持ALTER TABLE XXX MODIFY COLUMN语法。
修改列的属性。
- 新增支持PL/SQL 匿名块。
支持范围仅考虑匿名块,EXECUTE IMMEDIATE后面的SQL直接透传,不支持存储过程、函数、触发器、包,不支持自治事务,不支持异常,不支持嵌套匿名块,不支持绑定变量,不支持单条NULL和空语句。
- 新增支持CREATE、TRUNCATE分区表的语法。
分区键仅支持列,分区范围支持使用字符串、常数表达,统一SQL会根据表名、分区名在转化库中创建分区表,分区表名为:表名$分区名。
清空分区表,分区表名为:表名$分区名,暂不支持表和分区名上有双引号的清空。
- 本版本Oracle2GaussDB-Oracle新增内容:
- 新增支持WM_CONCAT函数。
将分组内的字符串根据逗号进行拼接。
- 新增支持NOLOGGING、COMPUTE STATISTICS关键字。
创建索引支持NOLOGGING、COMPUTE STATISTICS关键字。
- 新增支持RENAME…TO…语法。
修改表名、视图名称。
8.1.10. 版本发布 24.1.0.0
- 发布日期:2024-04-30
修复 Oracle2Tdsql-mysql、 Oracle2OceanBase-MySQL中 伪列
rowid
、user
, 序列的nextval
、currval
改写不正确的问题。
8.1.11. 版本发布 23.4.1.0
- 发布日期:2024-01-24
修复 Oracle2Tdsql-mysql、 Oracle2OceanBase-MySQL中 伪列
rowid
、user
, 序列的nextval
、currval
改写不正确的问题。
8.1.12. 版本发布 23.4.0.0
- 发布日期:2023-12-29
统一SQL Oracle2DM 第一版发布。
新增多发功能,支持将DML操作发送到Oracle执行的同时把改写后的DML多发至多个库中执行。
新增启动系统属性:
unisql.error.skip
,用于控制转换过程中出现任何异常SQL可以保持原样透传,默认关闭,详见:unisql.conf文件说明。新增支持改写Oracle
lengthb
函数。新增支持Oracle的 ORDER BY … [ ASC | DESC ] [ NULLS FIRST | NULLS LAST ] 语法。
新增支持Oracle的
CREATE GLOBAL TEMPORARY TABLE ... ON COMMIT PRESERVE|DELETE ROWS
用法。新增支持Oracle的
CREATE BITMAP INDEX
语法。新增支持Oracle的
ALTER TABLE ... ADD CONSTRAINT ... ENABLE | DISABLE
语法。
8.1.13. 版本发布 23.3.0.0
- 发布日期:2023-09-28
统一SQL Oracle2Tdsql-mysql 第一版发布。
统一SQL
Oracle2OceanBase-Oracle
第一版发布。详细支持、不支持特性可查阅文档第5章Oracle2OceanBase-Oracle
。调整了日志打印方式,参考 2.3.4 节的说明。
增加了
sql-convert-runtime-native
工程,文档中增加了配套的使用说明,参考 2.2 节的说明。
8.1.14. 版本发布 23.2.0.0
- 发布日期:2023-06-30
统一SQL Oracle2Lightdb-Oracle 第一版发布。
新增
Mybatis
、jrescloud
集成统一SQL示例。Oracle2PostgreSQL
新增支持 层次查询。第3章
Oracle2PostgreSQL
增加不支持特性说明(3.4)。统一SQL Java SDK(sql-convert-runtime)
23.2.0.0
发布,对应的动态库版本为LightDB1.0-unisql-V202302-00-000
。
8.1.15. 版本发布 23.1.1.0
- 发布日期:2023-06-02
统一SQL运行时SQL语句转换 Oracle2PostgreSQL 第一版发布。
支持序列
seq_name.nextval
转换改写,支持rownum
部分用法,支持使用83个oracle函数。支持DUAL,支持pivot/unpivot部分语法,支持
(+)
外关联部分语法。DML支持
INSERT ALL INTO
部分语法, 支持MERGE INTO
部分语法。DDL支持创建、清空、删除分区表,新增、删除表约束,创建、删除索引。