1 2 3 4 5 ··· 13 下一页

2024年11月16日

基于语法树的SQL自动改写工具开发系列(2)-使用PYTHON进行简单SQL改写的开发实战

摘要: 一、前言 前面一篇写了如何搭建环境,本文接着讲怎么使用antlr4进行开发。 二、实战 根据上一篇,基于语法树的SQL自动改写工具开发系列(1)-离线安装语法树解析工具antlr4-DA-技术分享-M版,先在本地部署好开发环境。 DEMO 1 写一段期望改写的原始SQL,使用pygrun进行解析 比 阅读全文

posted @ 2024-11-16 17:07 DarkAthena 阅读(1) 评论(0) 推荐(0) 编辑

基于语法树的SQL自动改写工具开发系列(1)-离线安装语法树解析工具antlr4

摘要: 前言 最近遇到个项目,打算做ORACLE应用系统里的PLSQL重构,将一些ORACLE独有的高级语法改写成指定的通用语法,以便能支持在更多的数据库上运行,但该应用系统里的PLSQL代码量实在太大,人工改写或者正则替换都不是那么容易,数据库厂家的自动改写工具也只能提供一种规则的自动转换,不能定制转换规 阅读全文

posted @ 2024-11-16 17:01 DarkAthena 阅读(2) 评论(0) 推荐(0) 编辑

【MogDB】MogDB5.2.0重磅发布第八篇-支持PLSQL编译全局缓存

摘要: 前言 在我之前的文章中有提过,原生PG对于重度存储过程的应用系统适配,具有一个致命缺陷,即原生PG中的plsql是会话级缓存,这意味着每个会话在第一次执行某个存储过程时,都需要对这个存储过程进行编译,并且将编译结果缓存到本会话,由此引发巨大的内存占用(应用连接池多连接)以及首次调用时的严重性能问题( 阅读全文

posted @ 2024-11-16 15:17 DarkAthena 阅读(2) 评论(0) 推荐(0) 编辑

2024年11月10日

【MogDB】MogDB5.2.0重磅发布第七篇-支持PLSQL编译依赖

摘要: 一、前言 在原生PG中,创建一个自定义函数或者存储过程,如果出入参的类型不存在,那么创建将会报错;但在ORACLE中仍然可以创建,只是状态为失效,后续补上缺少的类型即可。而原生PG则必须依照特定的顺序来创建数据库对象。openGauss2.1版本起新增了package这种可以内建类型、函数、过程的对 阅读全文

posted @ 2024-11-10 22:19 DarkAthena 阅读(6) 评论(0) 推荐(0) 编辑

2024年11月6日

从pg_depend和pg_class开始了解MogDB/openGauss/postgresql的系统元数据设计

摘要: 前言 学习任何一种数据库,必须要了解它的数据字典,这样有利于了解数据库的结构、解读部分日志、定位一些问题。PG/OG系数据库的系统元数据遵从一个统一的设计规则,可以让初学者快速入门。本文以MogDB为例,剖析一下PG/OG系数据库的系统元数据设计哲学。 一、pg_depend 先来看pg_depen 阅读全文

posted @ 2024-11-06 12:53 DarkAthena 阅读(15) 评论(0) 推荐(0) 编辑

2024年11月2日

【ORACLE】对Oracle中char类型的研究分析

摘要: 前言 在国产数据库做ORACLE兼容性实现时,无可避免会遇到CHAR类型的差异,但是对于大多数的应用开发者来说,并不会深入去了解char类型的机制。很多开发者之前在ORACLE上就没弄懂,好不容易写出来的SQL在ORACLE能查到想要的东西了,但是一迁移到国产库的时候,发现相同的SQL,查询结果不一 阅读全文

posted @ 2024-11-02 01:07 DarkAthena 阅读(9) 评论(0) 推荐(0) 编辑

【MogDB】MogDB5.2.0重磅发布第九篇-SQL宽容性提升

摘要: 【MogDB】MogDB5.2.0重磅发布第九篇-SQL宽容性提升 一、前言 在ORACLE迁移到国产库的过程中,经常会遇到一些由于原本SQL不是太标准而导致在国产库上报错。这种错误,如果只有一个两个,手动改了就好了,但是如果如果要改的量非常大,还不能批量替换,而且不能根据数据库的报错信息直接判断出 阅读全文

posted @ 2024-11-02 00:53 DarkAthena 阅读(9) 评论(0) 推荐(0) 编辑

【MogDB】MogDB5.2.0重磅发布第六篇-支持自定义复杂对象类型

摘要: 一、前言 在期货行业的ORACLE数据库中,经常可以看到有大量的自定义复杂对象类型,类似以下代码 CREATE OR REPLACE TYPE Ty_test as OBJECT ( col1 NUMBER(8), COL2 CHAR(8), CONSTRUCTOR FUNCTION Ty_test 阅读全文

posted @ 2024-11-02 00:48 DarkAthena 阅读(6) 评论(0) 推荐(0) 编辑

【MogDB】MogDB5.2.0重磅发布第五篇-支持部分ORACLE的HINT

摘要: 一、背景 ORACLE的SQL优化器非常强大,但是仍然会在某些情况下,ORACLE自动生成的执行计划并不是很好,此时可以通过在SQL中增加HINT来人工控制执行计划应该怎么走。在ORACLE迁移到国产库的过程中,由于部分国产库并不支持ORACLE的HINT名称,因此以前在ORACLE加的这些HINT 阅读全文

posted @ 2024-11-02 00:37 DarkAthena 阅读(12) 评论(0) 推荐(0) 编辑

2024年10月19日

【openGauss】OPENGAUSS/POSTGRESQL 中float类型到int类型的隐式转换

摘要: 一、问题背景 在一次测试中,发现下面这条sql在oracle和POSTGRESQL/OPENGAUSS中的查询结果不一致 select cast(cast(0.5 as float) as integer); 在oracle中返回1,在openGauss中返回0,咋一看好像是openGauss中使用 阅读全文

posted @ 2024-10-19 17:06 DarkAthena 阅读(9) 评论(0) 推荐(0) 编辑

1 2 3 4 5 ··· 13 下一页

导航