Halo 数据库之 Oracle 兼容性(1)--兼容的 Oracle 引擎与参
数
1 什么是多模解析引擎
数据库具有独有的多模解析引擎技术,可以兼容 、、、、
、等主流数据库语法从而大幅减少迁移项目中的代码修改量。目前主要兼容 语法、函数、
视图等等,针对 数据库的迁移至少可以减少 以上的代码修改量,极大的降低迁移成本,同时也大大
降低了迁移风险。
使用可配置式解析引擎,可以灵活地在各个数据库引擎之间切换。
2 如何启用 Oracle 解析引擎
将参数文件 !中参数 "#$#$" 设置为 %%
"#$#$"&%%
重启数据库
#
'针对需要启用 解析引擎的数据库创建 扩展
( ) *(#"+
3 其他与 Oracle 引擎相关的参数
transform_null_equals
由于针对 ,- 的任何操作都只会返回 ,-,所以要判断一个值是否为 ,- 一般只能用 .,- 来判
断。 提供了参数 !$# *#* /来控制是否可以用 &0操作符来判断一个值是否为 ,-。可以
将参数 !$# *#* 设置为 (默认为 1 )。
、数据库中有一条空值记录,当参数 !$# *#*状态等于 1 /时,使用 & *0不能查询出空
值记录
23&45!$62)"& *+
)"
7777
(0 行记录)
、数据库中有一条空值记录,当参数 !$# *#*状态等于 /时,使用 & *0可以查询出空值
记录
23&45!$62)"& *+
)"
7777
(1 行记录)
use_datetime_as_date
的 "类型带有日期和时间信息,这和 的默认设置不同。默认情况下, 的 " 类型只包
含日期,")$ 类型才包含日期和时间信息。如果想要实现和 相同的 " 类型,可以将参数
*#")$##" 设置为 *8 默认值是 1 。注意,只有将 "#$#$" 设置为
模式时此参数才能生效。
*#")$##"&*
standard_parserengine_auxiliary
默认情况下 引擎不支持的语法会下传给 的默认引擎进行二次解析,以实现更好的兼容性。如果想
关闭二次解析功能,可以设置 ""# ) #*()) 为%1% (默认为 ),此时 引擎
碰到不支持的语法会直接报错。
""# ) #*())&%1%
transform_null_string
在模式下有效。
!$# *#) 参数目录 9"929 !
当 !$# *#) 设为 *,空串%% 和 * 是等价的,这和 的规范是一致的。
!$# *#) &*
8 $283+
) ) *8%%+
5!$62 $&%%+
$
777777
836
5!$62 $) *+
$
777777
86
当 !$# *#) 设为 !,空串%% 和 *是不等价的。
!$# *#) &!
评论