logo
publist
写文章

简介

该用户还未填写简介

擅长的技术栈

可提供的服务

暂无可提供的服务

【openGauss】如何在openGauss中实现类似Oracle中constructor function、member function的功能

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

文章图片
#oracle#数据库#database
【openGauss】让gsql和sqlplus输出包含有SQL及数据的完全一致的文本文件

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

文章图片
#sql#数据库#database
【openGauss】构建一个兼容Oracle模式支持创建package的openGauss的docker镜像

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

文章图片
#oracle#docker#数据库
【openGauss】谈一谈PostgreSQL及openGauss中的package

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

文章图片
#postgresql#数据库
【openGauss】带有out参数的存储过程及自定义函数的重载测试

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

文章图片
#数据库#database#sql
【openGauss】从“functions in index expression must be marked IMMUTABLE“谈起

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

文章图片
#数据库
openGauss基于PITR恢复测试

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

文章图片
#数据库
【openGauss】一个可能被忽视的功能--关于自定义参数的奇技淫巧

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

文章图片
#数据库#database#oracle
【openGauss】正则表达式次数符号“{}“在ORACLE和openGauss中的差异

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

文章图片
#正则表达式#数据库
【openGauss】Oracle与openGauss/GaussDB数据一致性高效核对方案

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

文章图片
#oracle#数据库
    共 812 条
  • 1
  • 2
  • 3
  • 82
  • 请选择