KingbaseES:ora_integer_div_returnfloat和ora_input_emptystr_isnull参数
ora_integer_div_returnfloat
在 KingbaseES 中,ora_integer_div_returnfloat
是一个 GUC 参数,用于控制整数除法的行为是否返回小数:
🧩 参数作用
-
开启 (
on
) 时
整数相除会保留小数部分,如8/5 = 1.6
。 -
关闭 (
off
) 时
与传统 PostgreSQL 行为一致,只返回整数结果,如8/5 = 1
(向下取整)(blog.csdn.net, blog.csdn.net)。
✅ 参数支持版本
根据 KingbaseES 官方文档,该参数为 兼容 Oracle 的 GUC 配置之一,默认值为 on(help.kingbase.com.cn)。
具体在哪个版本引入:
- 文档显示,该参数在 KingbaseES 版本 V8 系列以及 V9 系列中均已支持,即至少从 V8R006C008B0014(2023年后期)开始包含。
- 用户社区与 CSDN 博主也确认此功能在 2023 年已经上线(blog.csdn.net, blog.csdn.net)。
✅ 总结建议
参数名 | 默认值 | 开始支持版本 | 功能简介 |
---|---|---|---|
ora_integer_div_returnfloat | on | ≥ V8R006 / V9 系列 | 控制整数除法是否返回小数结果 |
如果你使用的是 KingbaseES 8.x 或 9.x,理论上默认已经支持该参数。可通过以下方式确认和设置:
-- 查看当前状态
SHOW ora_integer_div_returnfloat;
-- 如需关闭整数除法返回浮点行为
SET ora_integer_div_returnfloat = off;
如你使用更早版本(如 V7),或需要排查某个具体子版本是否包含此功能,建议查阅对应版本的兼容性参数文档或联系金仓技术支持。
KingBase 数据库实例参数
KingBase 数据库实例参数的详细说明、推荐值及相关参考信息,便于理解和优化配置。
📌 参数说明与推荐值
1. shared_preload_libraries
运行时加载必要扩展库,影响功能可用性与性能:
- synonym, plsql, force_view, kdb_ora_expr, dblink 等用于 Oracle 兼容与跨库访问;
- sysaudit, sys_stat_statements, backtrace 等用于审计与诊断;
- 推荐方式:根据业务启用,禁止无用库,避免内存浪费与安全风险;
- 完整重启实例即可应用更改。
2. ora_integer_div_returnfloat = on
- 功能:开启后整数除法返回浮点结果(如
5/2 = 2.5
),兼容 Oracle 行为; - 默认值
on
; - 推荐保持启用,无性能风险。
3. ora_input_emptystr_isnull = off
- 功能:控制将空字符串(
''
)作为空值处理; - 设置
off
可区分空值与空字符串; - 推荐视对 Oracle 应用的兼容需求设置,一般启用以保持一致性。
4. search_path = '"$USER", PUBLIC, SYS_CATALOG'
- 控制对象查找顺序,设置为
"$USER"
可提高安全性与隔离性; - 默认路径适中,除非对 schema 管理有额外需求无需更改。
5. sql_mode = ''
- 若与 MySQL 语法兼容性无关,则保持为空;
- 除非使用特殊 SQL,否则无须配置。
6. log_statement = 'mod'
- 功能:记录所有 DML 和 DDL 操作,有助于审计与回查;
- 默认值为
none
,日志量小; - 业务活跃时会产生大量日志,推荐接入集中日志系统,并视情况使用更细级别(如
ddl
)。
7. log_disconnections = on
- 功能:记录连接断开日志,有助于分析会话中断原因;
- 推荐启用,尤其在审计与稳定性监控场景中。
8. sysaudit.enable = on
, sysaudit.userevent = on
- 功能:开启系统审计及用户事件审计;
- 推荐在合规或安全审计要求下启用;
- 审计日志表会持续增长,建议配置归档机制并定期清理。
🧮 推荐参考配置(生产环境示例)
shared_preload_libraries = 'plsql, dblink, sysaudit, sys_stat_statements, backtrace'
ora_integer_div_returnfloat = on
ora_input_emptystr_isnull = off
search_path = '"$USER",PUBLIC,SYS_CATALOG'
sql_mode = ''
log_statement = 'mod'
log_disconnections = on
sysaudit.enable = on
sysaudit.userevent = on
- 精简为必需模块;
- 保留兼容性与审计要求;
- 控制日志量,确保系统稳定。
📚 参考资源
- KingBase ES 系统管理与审计官方文档;
- PostgreSQL/OpenGauss 延展的
shared_preload_libraries
和审计模块说明; - sysaudit 系统角色与日志表结构介绍(参考 Sybase/Avalache;
上一篇: 几秒钟就充满电!科学
下一篇: 暂无数据