前言有遇到客户,从oracle迁移到openGauss系,由于在源库中使用了大量的子自定义type,所以java代码里也有很多对type对象的处理。在oracle中可以直接传对象给数据库,但是openGauss/postgresql的源码用例中,都是通过PGobject.setValue,把对象中的
前言oracle23c开发者免费版已经于2023年4月4日(北京时间)推出,并且官方也公布了安装介质的下载地址,有RPM安装包、VM虚拟机、docker镜像(下载链接见文末)。由于最近工作比较忙,暂时无法写一篇内容丰富的测试,所以先提供一个最快速体验的方法,省去对于开发者而言,繁琐的安装步骤。(do
前言早前写过2篇有关Oracle字符集的文章基本说明了 ”数据字符编码“、”客户端字符编码“、”数据库字符编码“三者的关系,这些关系,对于openGauss也是一样的
前两天写了一篇openGauss3.1关于mysql的相关特性,但由于openGauss官网提供下载的版本还是9月30号第一次发布的版本,很多特性都还没合入,所以不少爱好者不能轻易体验到。本文提供一个真正的一键编译openGauss并安装的脚本
在9月30号,openGauss推出了3.1.0这一预览版,这个版本增加了不少内容,其中让我最感兴趣的是MYSQL的相关兼容
ORACLE数据库的utl_encode.uuencode函数,和标准的uuencode有区别,标准里规定每行60个字符,除最后一行外,应该都是大写字母"M"开头,但oracle中的是每行77个字符,以小写字母"l"开头,在mos上有记录BUG,UTL_ENCODE.UUENCODE Does Not Follow The Standard Uuencode Format (文档 ID 2197134.1)
官方解决方案是
简单来说就是这个bug已经收录,建议使用第三方外部过程,直到BUG修复
但这个bug是2016年报告的呀,这都5年多了。。。不过utl_encode.uudecode倒是能解析各种各样的长度(但是oracle解析标准的uuencode编码会丢失数据)
当然,uuencode这种编码已经被base64取代了,oracle不把这个bug当回事也情有可原,毕竟这个功能开发出来几十年了,也没多少人反馈有问题。
但强迫症难忍啊
edb数据库适配oracle的包列表
https://www.enterprisedb.com/docs/epas/latest/epas_compat_bip_guide/03_built-in_packages/
opengauss和mogdb对于其他数据库的语法兼容包
https://gitee.com/enmotech/compat-tools
目前支持的数量还很少,我打算支持几个
今天有人问到了pivot和unpivot关于in子句中的子查询问题,这个我之前研究过,结论是创建过程拼接动态sql,但是必须创建一个视图或者表,再查它,改天写个用起来更舒服的函数
今天有人问到了如何用数据库以sql查询的方式查询xlsx文件,我想到了目前网上可以搜到的xyg那个包,这个包的确能解析excel的数据,但查询展示结果不太优雅,我突然想到或许可以借用18c私有临时表的特性,让这个功能更美观,改天抽空写写
想稍微分析一下ORACLE的PLSQL到openGause的通用转换方案
准备尝试一下,我之前写的一些plsql包在OceanBase上的兼容情况
windows docker 报错:Failed to set version to docker-desktop: exit code: -1 stdout: �S��v�[a�{|�W N/ec\Ջ�v�d\O0
使用管理员身份执行 netsh winsock reset 即可
方法来自
https://www.lyile.cn/articles/2021/06/17/1623918094777.html
国产数据库的生态的确是个很严重的问题。记得在今年的1024程序员大会的十大数据库掌门人论坛时,有人也说了生态问题,然而却被人以iPhone为例而反驳。在我看来,国产数据库的生态和iPhone的生态完全不是一回事,iPhone自生产出来,就是一个可以被广大消费者使用的“完整产品”,而数据库,还需要应用软件去用它,才能发挥价值。举个例子,oracle旗下有款业务软件,叫Hyperion,所用的数据库是essbase,而终端用户只知道是海波龙系统,完全不会在乎它是用的什么数据库。所以更多的时候,数据库产品是作为软件服务一起被出售的,与此相关的甚至还有基于此软件的硬件、开发、运维等服务。国产数据库想要发展,绝对不可能独善其身,就像此文中说的,需要各个领域的国产公司及产品大家联合起来,共同为终端用户创造更好的产品
个人以为,国产数据库发展如果想要加速,可以尝试一下多和软件厂商合作,或者组建软件团队。
目前ORACLE数据库如此重要的原因,除了它的完善和稳定性外,还有一点就是目前有大量使用ORACLE数据库的业务管理系统,尤其是Oracle官方的比如EBS/JDE/SIEBEL/BI/PEOPLESOFT/RETEK等,其中以EBS最为突出,像京东、华为这样的企业依然在使用EBS,也就必须使用oracle数据库。
数据库,当它纯粹是个数据库时,没有什么感觉,它毕竟是在大多数用户看不到的地方,它的价值需要有优秀的软件使用它才能得以体现。
而且真正有软件要使用数据库时,开发过程中也可以对数据库提出一些改进建议,这样能让数据库更完善。
如果某天,国产的这些软件及数据库,能共同完成这些业务管理系统的无痛平移,相信国产数据库的影响力会变得更大。