
简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
本文探讨了在openGauss 3.0中实现类似Oracle面向对象编程特性的方法。由于openGauss不支持Oracle中的对象类型构造器和成员函数,作者提出通过创建同名type和package的方式实现类似功能。具体方案包括:1)在package中创建self函数作为构造器;2)将原成员函数改写为package函数,并添加self参数;3)调用时使用包名.函数的方式。这种改写方式虽然采用面向

摘要:本文探讨了从Oracle迁移到openGauss/MogDB时实现数据核对的技术方案。针对传统核对工具存在的格式不一致问题,作者提出了一种创新的JSON转换方法:通过创建表函数将查询结果转换为标准JSON格式,统一了sqlplus和gsql的输出格式。该方法解决了列宽不一致、提示符差异等难题,最终实现了两个数据库查询结果的完全一致输出。文中详细对比了两种数据库的多种输出方式,并提供了完整的实

OpenGauss 2.1.0新增package功能但需配置兼容模式为"A"。官方Docker镜像默认设为"PG"导致报错。解决方法:1)修改entrypoint.sh将参数改为A;2)准备安装包并修改Dockerfile添加阿里源;3)构建自定义镜像并运行。关键步骤包括DNS配置、Dockerfile修改和构建脚本执行,最终可成功创建支持package的O

本文探讨了Oracle中的Package特性及其在PostgreSQL和openGauss中的实现差异。Oracle Package提供私有化函数、过程复用等优势,而PostgreSQL需通过创建Schema变通实现,存在管理复杂、性能不佳等问题。openGauss 2.1.0版本新增Package支持,采用pg_proc.propackageid字段关联包与函数,但存在多项限制:不支持同名过程、

摘要: OpenGauss与Oracle在函数重载机制上存在差异。Oracle通过PACKAGE支持同名函数重载,区分参数个数和类型。OpenGauss默认仅匹配存储过程名称和入参,不支持仅out参数不同的重载,但可通过参数behavior_compat_options='proc_outparam_override'启用此功能。测试表明,未启用时同名函数会被覆盖,启用后允许out参数不同的重载。

摘要: 函数索引在数据库迁移中常引发“IMMUTABLE”错误,如openGauss/PG中to_char()函数因结果随环境变量变化(如时区)被禁止使用。Oracle虽允许此类索引,但会导致数据不一致问题——同一查询在不同时区可能返回不同结果。解决方案包括:1)遵循规范,避免在索引字段使用函数转换;2)通过自定义IMMUTABLE函数替代;3)利用openGauss插件框架(如whale)实现兼

摘要:MogDB数据库PITR恢复操作指南 本文详细介绍了MogDB数据库基于时间点(PITR)的恢复流程。主要内容包括:1)完整的7步恢复操作流程;2)recovery.conf文件的关键配置参数说明(归档恢复和恢复目标设置);3)四种恢复场景模拟(命名还原点/XID/LSN/时间点恢复)的具体操作示例;4)故障模拟和恢复实施步骤。文档提供了从基础备份准备到最终恢复完成的完整技术方案,包含关键S

文章摘要:本文介绍了PostgreSQL/OpenGauss等数据库中的自定义参数功能,通过点号分隔的命名方式实现灵活配置。该功能支持会话级参数设置,可用于SQL上下文传递、行级访问控制等场景。相比Oracle的全局变量方案,自定义参数无需创建额外对象,通过current_setting函数即可调用。文章还提供了典型应用案例,如在多用户视图中实现数据隔离、模拟Oracle全局变量等,展示了这一功能

摘要: 本文探讨了正则表达式中{}在不同数据库和编程语言中的解析差异。在ORACLE中,{}若不满足{m}等标准格式,则被视为普通字符串;而openGauss等严格校验{}内数字格式,否则报错。通过源码分析发现,openGauss沿用PG逻辑,而不同语言(如JAVA/RUST报错,PHP/JS等不报错)对此处理不一。业务场景中,错误使用${1*}匹配占位符暴露了历史代码不规范问题,建议转义或修正逻

抛开那种直接count算行数的极不精确算法,现有的异构数据库的数据核对工具,一般是把数据都查到工具的内存里,对日期时间数字等非文本类型,进行统一的格式化处理,将一行的所有字段拼成一个长字符串,然后hash一下,得到一个值,比较两个库这行数据得到的这个hash值是否一致,则可以知道这行数据是否一致。而且假设表上没有主键,就只能把所有字段作为主键;所以,这种场景下,客户更需要的是,上线的时候,核对工具








