统一SQL 支持Oracle CHAR和VARCHAR2 (size BYTE|CHAR)转换

news2024/9/20 14:40:57

统一SQL介绍

https://www.light-pg.com/docs/LTSQL/current/index.html

源和目标

源数据库:Oracle

目标数据库:Postgresql,TDSQL-MySQL,达梦8,LightDB-Oracle

操作目标

在Oracle中的CHAR和VARCHAR2数据类型,如下图所示,根据参数语义,在存储时可以选择以字节还是字符进行存储。

目前统一SQL也加上了BYTE和CHAR两个语法词的解析,根据目标库对该语义的支持程度进行SQL改写。

统一SQL转换

下表是oracle到目标库通过统一SQL转换前后的对比

Oracle2Posgresql

转换前后SQL:

-- 转换前Oracle SQL  char/character
CREATE TABLE unisql_character_type_test(c1 char,c2 char(10),c3 char(10 byte),c4 char(10 char),c11 character,c12 character(10),c13 character(10 byte),c14 character(10 char));
-- 转换后Postgresql SQL char/character
CREATE TABLE unisql_character_type_test (c1 char,c2 char(10),c3 char(10),c4 char(10),c11 char,c12 char(10),c13 char(10),c14 char(10))



-- 转换前Oracle SQL  varchar2/varchar
CREATE TABLE unisql_character_type_test(c1 varchar2(10),c2 varchar2(10 byte),c3 varchar2(10 char),c11 varchar(10),c12 varchar(10 byte),c13 varchar(10 char));
-- 转换后Postgresql SQL varchar2/varchar
CREATE TABLE unisql_character_type_test (c1 varchar(10),c2 varchar(10),c3 varchar(10),c11 varchar(10))

Oracle2TDSQL-MySQL

转换前后SQL:

-- 转换前Oracle SQL  char/character
CREATE TABLE unisql_character_type_test(c1 char,c2 char(10),c3 char(10 byte),c4 char(10 char),c11 character,c12 character(10),c13 character(10 byte),c14 character(10 char));
-- 转换后TDSQL-MySQL SQL char/character
CREATE TABLE `unisql_character_type_test` (`c1` char,`c2` char(10),`c3` char(10),`c4` char(10),`c11` char,`c12` char(10),`c13` char(10),`c14` char(10))



-- 转换前Oracle SQL  varchar2/varchar
CREATE TABLE unisql_character_type_test(c1 varchar2(10),c2 varchar2(10 byte),c3 varchar2(10 char),c11 varchar(10),c12 varchar(10 byte),c13 varchar(10 char));
-- 转换后TDSQL-MySQL SQL varchar2/varchar
CREATE TABLE `unisql_character_type_test` (`c1` varchar(10),`c2` varchar(10),`c3` varchar(10),`c11` varchar(10))

Oracle2DM

转换前后SQL:

-- 转换前Oracle SQL  char/character
CREATE TABLE unisql_character_type_test(c1 char,c2 char(10),c3 char(10 byte),c4 char(10 char),c11 character,c12 character(10),c13 character(10 byte),c14 character(10 char));
-- 转换后达梦8 SQL char/character
CREATE TABLE unisql_character_type_test(c1 char,c2 char(10),c3 char(10 byte),c4 char(10 char),c11 character,c12 character(10),c13 character(10 byte),c14 character(10 char))



-- 转换前Oracle SQL  varchar2/varchar
CREATE TABLE unisql_character_type_test(c1 varchar2(10),c2 varchar2(10 byte),c3 varchar2(10 char),c11 varchar(10),c12 varchar(10 byte),c13 varchar(10 char));
-- 转换后达梦8 SQL varchar2/varchar
CREATE TABLE unisql_character_type_test(c1 varchar2(10),c2 varchar2(10 byte),c3 varchar2(10 char),c11 varchar(10))

Oracle2LightDB-Oracle

转换前后SQL:

-- 转换前Oracle SQL  char/character
CREATE TABLE unisql_character_type_test(c1 char,c2 char(10),c3 char(10 byte),c4 char(10 char),c11 character,c12 character(10),c13 character(10 byte),c14 character(10 char));
-- 转换后LightDB-Oracle SQL char/character
CREATE TABLE unisql_character_type_test(c1 char,c2 char(10),c3 char(10 byte),c4 char(10 char),c11 character,c12 character(10),c13 character(10 byte),c14 character(10 char))



-- 转换前Oracle SQL  varchar2/varchar
CREATE TABLE unisql_character_type_test(c1 varchar2(10),c2 varchar2(10 byte),c3 varchar2(10 char),c11 varchar(10),c12 varchar(10 byte),c13 varchar(10 char));
-- 转换后LightDB-Oracle SQL varchar2/varchar
CREATE TABLE unisql_character_type_test(c1 varchar2(10),c2 varchar2(10 byte),c3 varchar2(10 char),c11 varchar(10))


Oracle其他数据类型到目标库的转换可参考统一SQL官方手册

https://www.light-pg.com/docs/LTSQL/current/index.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1617469.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

以始为终梳理前端的发展方向

嗨,我是小路。一位努力向上生长的90后前端开发工程师。 以下是正文: 前段时间朋友和我吐槽:“做了多年的PHP开发,突然被离职,然后去招聘市场一看,发现PHP已经没有市场了。偶尔会出现一两个相关的职位&#…

AI一键生成的解说短剧,如何导出工程文件到剪映二次编辑?

用鬼手剪辑可以一键生成解说视频 鬼手剪辑的一键生成解说视频是一种快速简便的AI解说工具,可以帮助用户将短视频转换为解说视频。该工具通过语音识别、自然语言处理和视频剪辑等技术,自动生成解说词并完成视频剪辑。 一键生成解说操作教程 一键生成解说…

PCB的层叠结构

有pcb的用处: 是为了防止线乱和占面积 PCB单层板:如果有人触电了,是算设计师没有设计好,还是操作员没有操作好,没有进行责任划分 防止触电,加绿皮 偶数版子:上下冲压对称性更好,不…

基于灰狼算法的综合能源系统多时间尺度优化调度(附matlab程序)

0.代码链接 基于灰狼算法的综合能源系统多时间尺度优化调度(MATLAB程序)资源-CSDN文库 1.简述 对于冷、热、电联供综合能源系统优化问题,为了提高可再生能源利用率,故以弃风、弃光量最小和综合能源系统运行经济性为优化目标&…

数据结构之顺序表的实现(C语言版)

Hello, 大家好,我是一代,今天给大家带来有关顺序表的有关知识 所属专栏:数据结构 创作不易,望得到各位佬们的互三呦 一.前言 1.首先在讲顺序表之前我们先来了解什么是数据结构 数据结构是由“数据”和“结构”两词组合⽽来。 什…

个人音乐播放网站项目(SpringBoot+Linux部署上线)

在做完第一个博客系统项目以后,接着做下一个项目:音乐播放网站项目,此项目应用的技术栈和第一个项目是差不多的,即算是学完SSM等知识以后的两个入门级Java开发项目吧。 此项目包含的核心功能有: 一、登录、注册、退出…

【C++】:构造函数和析构函数

目录 前言一,构造函数**1.1 什么是构造函数****1.2 构造函数的特性**1.3 总结 二,析构函数**2.1 什么是析构函数****2.2 析构函数的特性****2.3 总结** 前言 如果一个类中什么成员都没有,简称为空类。 空类中真的什么都没有吗?并…

Nginx 四层和七层代理

四层:通过报文中的目标地址和端口,加上负载均衡设备设置的服务器选择方式,决定最终选择的内部服务器,使用tcp、udp协议。 七层:"内容交换",通过报文中真正有意义的应用层内容,加上负…

【MATLAB报错】错误使用 sym>tomupad Unable to convert ‘uss‘ to ‘sym‘.解决方法

出错代码如下: syms s; % Gnom matrix g11 13.8 / (0.16 * s 1); g12 -0.05 / (0.1 * s 1); g21 0.1 / (0.3 * s 1); g22 4.25 * s / (0.84 * s - 1); Gnom [g11 g12; g21 g22];w1 makeweight(0.2, 35, 9); w2 makeweight(0.25, 40, 8); W blkdiag(w1, …

vue+springboot实验个人信息,修改密码,忘记密码功能实现

前端部分 新增Person(个人页面),Password(修改密码页面),还需要对Manager,login页面进行修改 router文件夹下的index.js: import Vue from vue import VueRouter from vue-router i…

服务器基础知识(1)

🐌博主主页:🐌​倔强的大蜗牛🐌​ 📚专栏分类:服务器❤️感谢大家点赞👍收藏⭐评论✍️ 1、什么是服务器 服务器是计算机的一种,它比普通计算机运行更快、负载更高、价格更贵。服务…

顺序表(快速上手数据结构)

在介绍ArrayList之前, 我们需要先了解List. List是一个接口,它继承于Collection接口(Collection又继承于最顶层的接口Iterable). 从数据结构的角度来看,List就是一个线性表(Linear List),即n个具有相同类型元素的有限序列, 在该序列上可以执行增删查改等操作. 注意: List是一…

GaN HEMT中短沟道效应的建模

来源:Modeling of Short-Channel Effects in GaN HEMTs(TED 20年) 摘要 在本文中,我们提出了一种用于估算GaN高电子迁移率晶体管(HEMT)器件中短沟道效应(SCEs)的显式和解析的基于电…

通天星CMSV6 车载视频监控平台 信息泄露漏

本文内容为学习笔记分享,仅供技术学习参考,请勿用作违法用途,任何个人和组织利用此文所提供的信息而造成的直接或间接后果和损失,均由使用者本人负责,与作者无关!!! 漏洞描述 通天…

【漏洞复现】锐捷 EG易网关 phpinfo.view.php 信息泄露漏洞

0x01 产品简介 锐捷EG易网关是一款综合网关产品,集成了先进的软硬件体系构架,并配备了DPI深入分析引擎、行为分析/管理引擎。这款产品能在保证网络出口高效转发的基础上,提供专业的流控功能、出色的URL过滤以及本地化的日志存储/审计服务。 …

PDF 书签制作与调整

本文是对以前发表的旧文拆分,因为原文主题太多,过长,特另起一篇分述。 第一部分 由可编辑 PDF 文档创建书签 方法 1. Adobe Acrobat Pro autobookmark AutoBookmark 是一个可用于 Adobe Acrobat 自动生成书签的插件。 官方下载地址&…

数新大数据平台迁移解决方案

随着企业的发展和数字化转型的不断深入,企业数据平台建设过去很多年,技术和架构过于落后,原有的大数据平台越来越难以满足业务需求。而在新的技术架构大数据平台的升级过程中,对数据和任务迁移的一致性、完整性有很高的要求&#…

贪吃蛇游戏C语言破解:成为编程高手的必修课!

​ 个人主页:秋风起,再归来~ 文章专栏:C语言实战项目 个人格言:悟已往之不谏,知来者犹可追 克心守己,律己则安! 1、游戏效果演示 贪吃蛇游戏效果演示 2、win32 A…

广州大学《软件工程》实验报告三软件设计

广州大学学生实验报告(三) 开课学院及实验室: 学院 年级/专业/班 姓名 学号 实验课程名称 软件工程导论实验 成绩 实验项目名称 软件设计 指导老师 一、实验目的 掌握软件设计建模技术,能够撰写软件设计文…

解线性方程组——(Jacobi)雅克比迭代法 | 北太天元

一、Jacobi迭代法 n 3 n3 n3 , 阶数为 3 时 A ( a 11 a 12 a 13 a 21 a 22 a 23 a 31 a 32 a 33 ) , b ( b 1 b 2 b 3 ) , A\begin{pmatrix} a_{11} & a_{12} &a_{13}\\ a_{21} & a_{22} &a_{23}\\ a_{31} & a_{32} &a_{33}\\ \end{pmatrix} ,\qua…