oracle迁移至gbase,sql问题总结(完善中)

2024-03-18 15:52

本文主要是介绍oracle迁移至gbase,sql问题总结(完善中),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

最近再做国产化适配,需要把oracle里面的数据迁移至gbase 8a库中,这边把迁移过程中遇到的sql问题,记录下,现在仅迁移了一部分,后续会继续完善

1.ORACLE里面的NVL2函数在8a中不支持,可换成DECODE函数

2.表别名必须加,上面是ORACLE写法,下面是8a写法

--ORACLE
select * from (select T.CITY, T.COMPANYNAME from TEST T)
--GBASE 8a
select * from (select T.CITY, T.COMPANYNAME from TEST T) A

3.sql中注释去掉(8a的注释方式和oracle不同)

--ORACLE
select * from (--查询公司名称select /*T.CITY,*/ T.COMPANYNAME from TEST T)
--GBASE 8a
select * from (select  T.COMPANYNAME from TEST T)


4.新建用户不能使用dual表时,需要去授权(我的用户是TEST_RY)

gccli gclusterdb
grant select on gclusterdb.dual to TEST_RY;


5.表名不支持含有#,8a中的#代表单行注释,所以表名中不允许出现#


6.ORACLE里面的WITH语句不支持,修改参数即可支持(需要使用gbase的root用户登录,执行sql。root用户的密码默认为空

gccli -u root -p
show variables like '%cte%';
set global _t_gcluster_support_cte=1;


7.LISTAGG( ) WITHIN GROUP ( ) OVER ( )不支持改为 group_concat函数(需要根据业务逻辑自行修改)


8.group_concat函数不支持,需要修改两个参数

SET GLOBAL group_concat_max_len=102400;
SET SESSION group_concat_max_len=102400;


9.case when不支持子查询,需要用with解决,自行根据sql逻辑改sql

   

这篇关于oracle迁移至gbase,sql问题总结(完善中)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/822853

相关文章

Vue3绑定props默认值问题

《Vue3绑定props默认值问题》使用Vue3的defineProps配合TypeScript的interface定义props类型,并通过withDefaults设置默认值,使组件能安全访问传入的... 目录前言步骤步骤1:使用 defineProps 定义 Props步骤2:设置默认值总结前言使用T

Python中logging模块用法示例总结

《Python中logging模块用法示例总结》在Python中logging模块是一个强大的日志记录工具,它允许用户将程序运行期间产生的日志信息输出到控制台或者写入到文件中,:本文主要介绍Pyt... 目录前言一. 基本使用1. 五种日志等级2.  设置报告等级3. 自定义格式4. C语言风格的格式化方法

Spring 依赖注入与循环依赖总结

《Spring依赖注入与循环依赖总结》这篇文章给大家介绍Spring依赖注入与循环依赖总结篇,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. Spring 三级缓存解决循环依赖1. 创建UserService原始对象2. 将原始对象包装成工

MySQL中On duplicate key update的实现示例

《MySQL中Onduplicatekeyupdate的实现示例》ONDUPLICATEKEYUPDATE是一种MySQL的语法,它在插入新数据时,如果遇到唯一键冲突,则会执行更新操作,而不是抛... 目录1/ ON DUPLICATE KEY UPDATE的简介2/ ON DUPLICATE KEY UP

MySQL分库分表的实践示例

《MySQL分库分表的实践示例》MySQL分库分表适用于数据量大或并发压力高的场景,核心技术包括水平/垂直分片和分库,需应对分布式事务、跨库查询等挑战,通过中间件和解决方案实现,最佳实践为合理策略、备... 目录一、分库分表的触发条件1.1 数据量阈值1.2 并发压力二、分库分表的核心技术模块2.1 水平分

Python与MySQL实现数据库实时同步的详细步骤

《Python与MySQL实现数据库实时同步的详细步骤》在日常开发中,数据同步是一项常见的需求,本篇文章将使用Python和MySQL来实现数据库实时同步,我们将围绕数据变更捕获、数据处理和数据写入这... 目录前言摘要概述:数据同步方案1. 基本思路2. mysql Binlog 简介实现步骤与代码示例1

Web服务器-Nginx-高并发问题

《Web服务器-Nginx-高并发问题》Nginx通过事件驱动、I/O多路复用和异步非阻塞技术高效处理高并发,结合动静分离和限流策略,提升性能与稳定性... 目录前言一、架构1. 原生多进程架构2. 事件驱动模型3. IO多路复用4. 异步非阻塞 I/O5. Nginx高并发配置实战二、动静分离1. 职责2

解决升级JDK报错:module java.base does not“opens java.lang.reflect“to unnamed module问题

《解决升级JDK报错:modulejava.basedoesnot“opensjava.lang.reflect“tounnamedmodule问题》SpringBoot启动错误源于Jav... 目录问题描述原因分析解决方案总结问题描述启动sprintboot时报以下错误原因分析编程异js常是由Ja

使用shardingsphere实现mysql数据库分片方式

《使用shardingsphere实现mysql数据库分片方式》本文介绍如何使用ShardingSphere-JDBC在SpringBoot中实现MySQL水平分库,涵盖分片策略、路由算法及零侵入配置... 目录一、ShardingSphere 简介1.1 对比1.2 核心概念1.3 Sharding-Sp

MySQL 表空却 ibd 文件过大的问题及解决方法

《MySQL表空却ibd文件过大的问题及解决方法》本文给大家介绍MySQL表空却ibd文件过大的问题及解决方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考... 目录一、问题背景:表空却 “吃满” 磁盘的怪事二、问题复现:一步步编程还原异常场景1. 准备测试源表与数据